Dlaczego program wyświetla wartości ujemne zamiast dodatnich? Zostaje przekroczony maksymalny zakres w pamięci? Czy unsigned long long int nie wystarcza?
#include <stdlib.h>
#include <stdio.h>
int main() {
int i;
unsigned long long int fibionnaci[80];
for(i = 0; i < 80; i++) {
if(i == 0 || i == 1){
fibionnaci[i] = i;
} else {
fibionnaci[i] = fibionnaci[i - 1] + fibionnaci[i - 2];
}
}
for(i = 0; i < 80; i++) {
if(fibionnaci[i] <= 1) {
continue;
} else if (liczDzielniki(fibionnaci[i]) <= 2) {
printf("%d \n", fibionnaci[i]);
}
}
return 0;
}
int liczDzielniki(int digit) {
int i, result = 0;
for(i = 1; i <= digit; i++) {
if(digit % i == 0) {
result += 1;
}
}
return result;
}