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