C语言用函数求1000以内的完数的和!急!
发布时间:2025-05-12 02:24:36 发布人:远客网络
一、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);