C Programma om primen of Armstrong-nummer te controleren met behulp van door de gebruiker gedefinieerde functie

In dit voorbeeld leer je om te controleren of een geheel getal een priemgetal of een Armstrong is, of beide, door twee aparte functies te creëren.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende C-programmeeronderwerpen:

  • C voor Loop
  • C while en do… while Loop
  • C breken en doorgaan
  • C Functies
  • Typen door de gebruiker gedefinieerde functies in C-programmering

In dit programma voor twee gebruikers gedefinieerde functies checkPrimeNumber()en checkArmstrongNumber()zijn gemaakt.

De checkPrimeNumber()functie keert terug 1als het nummer dat door de gebruiker is ingevoerd een priemgetal is. Evenzo checkArmstrongNumber()retourneert 1de functie ook als het nummer dat door de gebruiker is ingevoerd een Armstrong-nummer is.

Bezoek deze pagina's om te leren controleren of een nummer is

  • een priemgetal of niet
  • een Armstrong-nummer of niet

Voorbeeld: controleer Prime en 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; )

Uitvoer

Voer een positief geheel getal in: 407407 is geen priemgetal. 407 is een Armstrong-nummer.

Interessante artikelen...