You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
964 B

#include <stdio.h>
unsigned long long factorial(int n) {
if (n < 0) {
return 0; // Fakultät für negative Zahlen ist nicht definiert
}
unsigned long long result = 1;
for (int i = 1; i <= n; ++i) {
result *= i;
}
return result;
}
int getPositiveInteger() {
int num;
while (1) {
printf("Gib eine positive ganze Zahl ein: ");
if (scanf("%d", &num) == 1 && num >= 0) {
break;
} else {
printf("Ungültige Eingabe. Bitte gib eine positive ganze Zahl ein.\n");
while (getchar() != '\n'); // Leere den Eingabepuffer
}
}
return num;
}
int run_factorial() {
int num = getPositiveInteger();
if (num < 0) {
printf("Fakultät ist für negative Zahlen nicht definiert.\n");
} else {
unsigned long long result = factorial(num);
printf("Die Fakultät von %d ist %llu\n", num, result);
}
return 0;
}