C-Sprachbeispiele - Armstrong-Zahl prüfen

C-Sprachbeispiele

Eine Armstrong-Zahl ist dadurch gekennzeichnet, dass bei einer n-stelligen Zahl die Summe jeder Ziffer hoch n gleich der Zahl selbst ist, wie zum Beispiel:

153=1^3+5^3+3^3
1634=1^4+6^4+3^4+4^4

Beispiel

#include <stdio.h> int main() { int number, originalNumber, remainder, result = 0; printf("Geben Sie eine dreistellige Zahl ein:"); scanf("%d", &number); originalNumber = number; while (originalNumber != 0) { remainder = originalNumber%10; result += remainder*remainder*remainder; originalNumber /= 10; } if(result == number) printf("%d ist eine Armstrong-Zahl",number); else printf("%d ist keine Armstrong-Zahl",number); return 0; }

Run result:

输入三位数: 371
371 是 Armstrong 

Beispiel - Armstrong-Zahlen zwischen zwei Zahlen

#include <stdio.h> #include <math.h> int main() { int low, high, i, temp1, temp2, remainder, n = 0, result = 0; printf("Geben Sie zwei ganze Zahlen ein:"); scanf("%d %d", &low, &high); printf("Die Armstrong-Zahlen zwischen %d und %d sind:", low, high); for(i = low + 1; i < high; ++i) { temp2 = i; temp1 = i; // Berechnen while (temp1 != 0) { temp1 /= 10; ++n; } while (temp2 != 0) { remainder = temp2 % 10; result += pow(remainder, n); temp2 /= 10; } if (result == i) { printf("%d ", i); } n = 0; result = 0; } return 0; }

Run result:

输入两个整数: 100 1000
100 和 1000 之间的 Armstrong 数为: 153 370 371 407

Beispiel - Armstrong-Zahl mithilfe einer Funktion prüfen

#include <stdio.h> #include <math.h> int checkPrimeNumber(int n); int checkArmstrongNumber(int n); int main() { int n, flag; printf("Geben Sie eine positive ganze Zahl ein:"); scanf("%d", &n); // Primzahl prüfen flag = checkPrimeNumber(n); if (flag == 1) printf("%d ist eine Primzahl.\n", n); else printf("%d ist keine Primzahl\n", n); // Armstrong-Zahl prüfen flag = checkArmstrongNumber(n); if (flag == 1) printf("%d ist eine Armstrong-Zahl.", n); else printf("%d ist keine Armstrong-Zahl.",n); return 0; } int checkPrimeNumber(int n) { int i, flag = 1; for(i=2; i<=n/2; ++i) { // Bedingung für Nicht-Primzahl if(n%i == 0) { flag = 0; break; } } return flag; } int checkArmstrongNumber(int number) { int originalNumber, remainder, result = 0, n = 0, flag; originalNumber = number; while (originalNumber != 0) { originalNumber /= 10; ++n; } originalNumber = number; while (originalNumber != 0) { remainder = originalNumber%10; result += pow(remainder, n); originalNumber /= 10; } // Bedingung bestimmen if(result == number) flag = 1; else flag = 0; return flag; }

Das Ausgabeergebnis ist:

输入正整数: 371
371 不是素数
371 是 Armstrong 数。

C-Sprachbeispiele

Weitere Erweiterungen