C Program til at kontrollere Prime- eller Armstrong-nummer ved hjælp af brugerdefineret funktion

I dette eksempel lærer du at kontrollere, om et heltal er et primtal eller en Armstrong eller begge ved at oprette to separate funktioner.

For at forstå dette eksempel skal du have kendskab til følgende C-programmeringsemner:

  • C for Loop
  • C mens og gør … mens Loop
  • C bryde og fortsætte
  • C Funktioner
  • Typer af brugerdefinerede funktioner i C-programmering

I dette program oprettes to brugerdefinerede funktioner checkPrimeNumber()og checkArmstrongNumber()oprettes.

De checkPrimeNumber()funktionen returnerer 1, hvis antallet indtastet af brugeren er et primtal. På samme måde checkArmstrongNumber()vender funktionen også tilbage, 1hvis det nummer, der er indtastet af brugeren, er et Armstrong-nummer.

Besøg disse sider for at lære at kontrollere, om et nummer er

  • et primtal eller ej
  • et Armstrong-nummer eller ej

Eksempel: Tjek Prime og Armstrong

 #include #include int checkPrimeNumber(int n); int checkArmstrongNumber(int n); int main() ( int n, flag; printf("Enter a positive integer: "); scanf("%d", &n); // check prime number flag = checkPrimeNumber(n); if (flag == 1) printf("%d is a prime number.", n); else printf("%d is not a prime number.", n); // check Armstrong number flag = checkArmstrongNumber(n); if (flag == 1) printf("%d is an Armstrong number.", n); else printf("%d is not an Armstrong number.", n); return 0; ) // function to check prime number int checkPrimeNumber(int n) ( int i, flag = 1, squareRoot; // computing the square root squareRoot = sqrt(n); for (i = 2; i <= squareRoot; ++i) ( // condition for non-prime number if (n % i == 0) ( flag = 0; break; ) ) return flag; ) // function to check Armstrong number int checkArmstrongNumber(int num) ( int originalNum, remainder, n = 0, flag; double result = 0.0; // store the number of digits of num in n for (originalNum = num; originalNum != 0; ++n) ( originalNum /= 10; ) for (originalNum = num; originalNum != 0; originalNum /= 10) ( remainder = originalNum % 10; // store the sum of the power of individual digits in result result += pow(remainder, n); ) // condition for Armstrong number if (round(result) == num) flag = 1; else flag = 0; return flag; )

Produktion

Indtast et positivt heltal: 407407 er ikke et primtal. 407 er et Armstrong-nummer.

Interessante artikler...