1.问题:求一个数的完全数:
完数解释:如果一个数等于它的因子之和,则称该数为完数。
6 = 1+2+3
2.问题分析
解题思路:从键盘输入一个数 求1到该数之间的数 是否是完全数
用该用for循环去判断 再用一个内层循环判断 1-该数 之间的数 求出它的因子(也就是可以被他整除)
用s保留循环的值。然后在用==去判断该数是否相等
这块要注意一点的是每次外层for循环的是否必须初始化s=0
3.代码实现
#include<stdio.h>
void main(){
int i,j,m,sum = 0;
printf("请输入一个整数 求该完数:\n");
scanf("%d",&m);
for(i=1;i<m;i++)
{
sum = 0; //保证每次循环是s=0
for(j=1;j<i;j++)
{
if(i%j==0) //判断j是否是i的除数
sum+=j;
}
if(sum==j) //如果两者相等 就是完数 否则不是完数
printf("是完全数%d \t",sum);
}
}