自然语言解决问题:根据完数的定义,解决本题的关键是计算出所选取的整数 (i的取值范围不固定)的因子(因子就是所有可以整除这个数的数 ,将各因子累加到量 (记录所有因子之和),若s 等于i,则可确认i为完数,反之则不是完数
流程图:
具体代码:
#include <stdio.h>
main(){
int i,r,j,s,n;
printf("请输入所选范围上限:");
scanf("%d",&n);
for(i=2;i<=n;i++){
s=0;
for(j=1;j<i;j++)
{
if(i%j==0)
s+=j;}
if(s==i)
printf("It's a perfect number:%d.\n",i);
}
}