我编写了一个简单的程序来查找紧随28之后的完美数字(即496),但是它不起作用。不知道我在做什么错。
#include <stdio.h>
int main(){
int num=29, sum=0, aux=1;
while(aux!=0){
for(int i=1; i<num; i++){
if(!(num%i)){
sum+=i;
}
}
if(sum == num){
printf("%d", sum);
aux=0;
}else{
num++;
}
}
return 0;
}
你必须sum
在每次检查之前进行初始化。
while(aux!=0){
sum = 0; /* add this */
for(int i=1; i<num; i++){