一、问题描述
求某一范围内完数的个数。
如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”)。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。
二、问题分析
根据完数的定义,解决本题的关键是计算出所选取的整数i(i的取值范围不固定)的因子(因子就是所有可以整除这个数的数),将各因子累加到变量s(记录所有因子之和),若s等于i,则可确认i为完数,反之则不是完数。
三、设计思路
1定义i,j,s,n变量,其中n为取值范围,i<=n,
2.当i<=n是,设s=0,然后从j=1开始循环,j<=i,如果i%j=0,则s+=j
3.若s=i,则输出i值,i继续递增,寻找下一个完数,直至i<=n条件不成立为止
四、程序流程图
五、代码实现
#include<stdio.h> int main() { int i,j,s,n; printf("请输入所选范围的上限:“); scanf("%d:,&n); for(i=2;i<+n;i++) { s=0; for(j-0;j<=i;j++) { if(i%j==0) s+=j; } if(s==i) printf(:It is a perfect number:%d.\n",i) } }
标签:int,晚数,因子,完数,取值,范围 From: https://www.cnblogs.com/tianpeisen/p/17416526.html