运用c语言输出100以内所有的完全数
发布时间:2025-05-12 09:19:28 发布人:远客网络
一、运用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语言编程:求(2,2000)中的完数
1、完数,即完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。其所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于本身。
2、根据该定义可以得出判断完数的函数如下:
3、if(n%i==0)s+=i;//统计所有真因子的和。
4、if(s==n)return1;//如果与原值相等,则该数为完数。
5、根据该函数,只需要对需要打印的范围内2~2000做遍历,并逐一调用该函数判断,如果返回1则打印即可。
6、if(n%i==0)s+=i;//统计所有真因子的和。
7、if(s==n)return1;//如果与原值相等,则该数为完数。
8、if(is_perfect_number(n))printf("%d,",n);
三、c语言完数判断
1、打开c语言编辑器,新建一个C语言空白文件:
2、然后就可以开始编写代码了,这里完数的意思就是一个数等于它的因子之和,比如6的因子为1、2、3,而6刚好是这些数之和。根据完数的定义,程序要输入一个数的范围,接着计算出所选取的整数i的因子,将各因子累加到变量s,若s等于i,则可确认i为完数:
3、最后运行查询,输入一个范围,程序就会自动查找这个范围内的数字里有那些完数,计算完成后会将其结果打印出来: