找出斐波那契数列前20项中不是完数的数。列如6的因子上1,2,3,而6=1+2+3,因此6是完数。
#include<stdio.h>
int main(){
int i, j, sum;
int cnt = 50; // 需要输出的项数
double fib[200] = {1.0, 1.0}; // int溢出,需要把数组类型改为 double
for(i = 2; i < cnt + 1; i++){
fib[i] = fib[i-2] + fib[i-1];
}
for(i = 0; i < cnt + 1; i++){
sum = 0;
for(j = 1; j < i; j++){
if(i%j == 0){
sum += j;
}
}
if(i == sum){
printf("%12.0lf",fib[i]); // 右对齐12字符
}
}
printf("\n");
return 0;
}