C Program do sprawdzania numeru Prime lub Armstrong za pomocą funkcji zdefiniowanej przez użytkownika

W tym przykładzie nauczysz się sprawdzać, czy liczba całkowita jest liczbą pierwszą, liczbą Armstronga lub obydwoma, tworząc dwie oddzielne funkcje.

Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w C:

  • C jak pętla
  • C while i zrób… while Loop
  • C przerwij i kontynuuj
  • Funkcje C
  • Rodzaje funkcji zdefiniowanych przez użytkownika w programowaniu w C.

W tym programie tworzone są dwie funkcje zdefiniowane przez użytkownika checkPrimeNumber()i checkArmstrongNumber().

Że checkPrimeNumber()funkcja zwraca 1jeżeli liczba wprowadzonych przez użytkownika jest liczbą pierwszą. Podobnie checkArmstrongNumber()funkcja zwraca również, 1jeśli liczba wprowadzona przez użytkownika jest liczbą Armstronga.

Odwiedź te strony, aby dowiedzieć się, czy numer to jest

  • liczba pierwsza czy nie
  • numer Armstronga, czy nie

Przykład: Sprawdź Prime i 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; )

Wynik

Wpisz dodatnią liczbę całkowitą: 407 407 nie jest liczbą pierwszą. 407 to numer Armstronga.

Interesujące artykuły...