c语言程序设计2~5000中的所有完数

2025-03-24 19:54:53
推荐回答(4个)
回答1:

路:所谓完数是一些特殊的自然数。如果一个数恰好等于它的因子之和,则称该数为“完全数”。先定义一个函数用于判断一个数是否是完数,接着依次从2到5000依次循环判断。

参考代码:

#include 
int fun(int n){//判断n是否是完数 
int i,sum=0;
for(i=1;i if(n%i==0) sum+=i;
if(sum==i) return 1;
return 0;

int main ()
{
int i;
for(i=2;i<5000;i++)
if(fun(i))
printf("%d ",i);
return 0; 
}
/*
运行结果:
6 28 496
*/

回答2:

#include
int main()
{
int T;
int a,sum,num,i,j,b;

a=2, b=5000;
sum=num=0;
for(j=a;j<=b;j++)
{
sum=0;
for(i=1;i if(j%i==0) sum+=i;
if(sum==i) {
num++;
printf("%d ", i);
}
}
printf("\n%d到%d之间共有%d个完数\n",a,b,num);
return 0;
}

回答3:

哥 没有分还不告诉什么是完数

回答4:

#include  
main()   
{   
int r,j,i;   
for(i=2;i<=5000; i++)
{   
r = 0;   
for(j=1;j {   
if(i%j == 0)
{   
r = r + j;   
}   
}   
if(r == i)
{   
printf("the result is:%d\n",r);   
}   
}    
}