C语言作业 编写一个判断完全数函数来解决某个问题 但是陷入了死循环, 大神给看看

一个自然数如果恰好等于它的真因子(即除了自身以外的约数)之和,这个自然数就称为“完全数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是一个完全数。编写一个判断完全数的函数,然后在main()函数中调用该函数,输出1000以内的所有完全数。#include<stdio.h>//判断完全数的函数int fac(int i){ int j,sum; for(j=1;j<i;j=j+1) { if(i%j==0) sum=sum+j; } return sum;}int main(){ int i; for(i=1;i<=1000;i++) if(fac(i)==i) printf("%d尀n",i); return 0;}
2026年09月22日 18:49
有1个网友回答
网友(1):

#include
//判断完全数的函数
int fac(int i)
{
int j,sum=0; //sum赋初值0
for(j=1;j {
if(i%j==0)
sum=sum+j;
}
return sum;
}

int main()
{
int i;
for(i=1;i<=1000;i++)
if(fac(i)==i) printf("%d\n",i);
return 0;
}