28之后的完美数字
The perfect number after 28
我编写了一个简单的程序来查找紧跟在 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++){
您应该在 while 循环中初始化 sum 的值,因为它的值在数字检查后没有重置为 0,并且它不断增加后面的值,所以最终会导致错误。
我编写了一个简单的程序来查找紧跟在 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++){
您应该在 while 循环中初始化 sum 的值,因为它的值在数字检查后没有重置为 0,并且它不断增加后面的值,所以最终会导致错误。