English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base del linguaggio C

Controllo di flusso del linguaggio C

Funzioni del linguaggio C

Array del linguaggio C

Puntatori del linguaggio C

Stringhe del linguaggio C

Struttura del linguaggio C

File del linguaggio C

Altro C

Manuale di riferimento del linguaggio C

Programma C, utilizzando funzioni definite dall'utente per controllare numeri primi o numeri di Armstrong

Manuale completo di programmazione C

In questo esempio, imparerai a controllare se un numero intero è un numero primo o un numero di Armstrong creando due funzioni separateNumero di Armstrongnumero (o entrambi i numeri).

Per comprendere questo esempio, è necessario conoscere il seguenteProgrammazione in CArgomento:

In questo programma, vengono creati due funzioni definite dall'utente checkPrimeNumber() e checkArmstrongNumber().

Se il numero inserito dall'utente è un numero primo, la funzione checkPrimeNumber() restituisce 1. Allo stesso modo, se il numero inserito dall'utente è un numero di Armstrong, la funzione checkArmstrongNumber() restituirà anche 1.

Visita queste pagine per sapere se ci sono numeri

Esempio: controlla Prime e Armstrong

#include <math.h>
#include <stdio.h>
int checkPrimeNumber(int n);
int checkArmstrongNumber(int n);
int main() {
   int n, flag;
   printf("Inserisci un numero intero positivo: ");
   scanf("%d", &n);
   // controlla se è un numero primo
   flag = checkPrimeNumber(n);
   if (flag == 1)
      printf("%d è un numero primo.\n", n);
   else
      printf("%d non è un numero primo.\n", n);
   // controlla il numero di Armstrong
   flag = checkArmstrongNumber(n);
   if (flag == 1)
      printf("%d è un numero di Armstrong.", n);
   else
      printf("%d non è un numero di Armstrong.", n);
   return 0;
}
// funzione per controllare se è un numero primo
int checkPrimeNumber(int n) {
   int i, flag = 1, squareRoot;
   // calcola la radice quadrata
   squareRoot = sqrt(n);
   for (i = 2; i <= squareRoot; ++i) {
      // condizione per i numeri non primi
      if (n % i == 0) {
         flag = 0;
         break;
      }
   }
   return flag;
}
// funzione per controllare il numero di Armstrong
int checkArmstrongNumber(int num) {
   int originalNum, remainder, n = 0, flag;
   double result = 0.0;
   // memorizza il numero di cifre di num in n
   for (originalNum = num; originalNum != 0; ++n) {
      originalNum /= 10;
   }
   for (originalNum = num; originalNum != 0; originalNum /= 10) {
      remainder = originalNum % 10;
      // memorizza la somma dei poteri di ciascun numero nel risultato
      result += pow(remainder, n);
   }
   // Condizione del numero Armstrong
   if (round(result) == num)
      flag = 1;
   else
      flag = 0;
   return flag;
}

Risultato di output

Inserisci un numero intero positivo: 407
407 non è un numero primo.
407 è un numero Armstrong.

Manuale completo di programmazione C