完数
问题分析:这个所求数,最小默认从2开始,假设范围是1000以内,第一层循环遍历2到1000内的所有数,第二层循环重新定义一个新的变量j,遍历能整除i的数,但其最大不会是i,遍历到i-1即可。
程序流程图:
程序代码实现:
#include<stdio.h>
int main()
{
int i,j,s,n;
scanf("%d",&n);
for(i=2;i<=n;i++)
{ s=0;
for(j=1;j<i;j++)
{
if(i%j==0)
s+=j;
}
if(i==s)
printf("%d\n",i);
}
return 0;
}