您当前的位置:首页 > 互联网教程

C语言用函数求1000以内的完数的和!急!

发布时间:2025-05-12 02:24:36    发布人:远客网络

C语言用函数求1000以内的完数的和!急!

一、C语言用函数求1000以内的完数的和!急!

1、完全数是除自身外的所有因子之和与自身相等的数。用一个for循环检查2至1000的偶数(迄今为止发现的完数全是偶数),若符合条件则输出此数。检查时,用另一for循环计数变量从2开始步长为1至此数的一半去除此数,能整除的累加求和(1因子不用检查,直接计入和),最后与此数比较是否相等,相等的则是完数。代码如下:

2、 for(sum=0,n=2;n<1000;n+=2){//遍历2~1000的偶数

3、 for(s=1,t=(n>>1),k=2;k<=t;k++)//用2~n/2检查是否能整除

4、 if(n==s)//检查s是否与n自身相等

5、 printf("Thesumofthemis%d\n",sum);

二、运用c语言输出100以内所有的完全数

for(i= 2; i<= x/2; i++)//从2开始,1不是完数

if(sum== x)printf("%d its factors are 1", x);//找到完数,感觉是为了“,”处理方便,所以在这里的末尾加了1

if(x% i== 0)printf(",%d", i);//找到完数的因子

如果一个数恰好等于它的因子之和,则称该数为“完全数”。

第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。

第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

第三个完全数是496,有约数1、2、4、8、16、31、62、124、248、496,除去其本身496外,其余9个数相加,1+2+4+8+16+31+62+124+248=496。后面的完全数还有8128、33550336等等。

三、C语言求1000以内的完数

1、完数,即完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。其所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于本身。

2、根据该定义可以得出判断完数的函数如下:

3、 if(n%i== 0) s+= i;//统计所有真因子的和。

4、 if(s== n) return 1;//如果与原值相等,则该数为完数。

5、根据该函数,只需要对需要打印的范围内1~1000做遍历,并逐一调用该函数判断,如果返回1则打印即可。

6、 if(n%i== 0) s+= i;//统计所有真因子的和。

7、 if(s== n) return 1;//如果与原值相等,则该数为完数。

8、 if(is_perfect_number(n)) printf("%d,",n);