1、C语言-判断完数
记得写注释
教材P220
完数(完全数、完美数):一个整数,它恰好等于它的真因 子之和。
真因子:除了本身以外的因子比方:
6的真因子有:1、2、3 1+2+3为628 的真因子有:1、2、4、7、14 1+2+4+7+14 为 28
技术点:for语句、if语句
注意:真因(子)数范围(循环判断条件范围)可有两种 写法(1) 1-n-l
(2 )1〜n/2【一个数不可能有大于其一半的真因子】L 输入一个数,判断是不是完数。
方法一:
#include int main() {
in,i,sum=0;//sum记录真因数和,初值0 s
2、canfC'%dH,&n);for(i=1;i<=n-:L;i++)//找出真因数
if(n%i==0)sum-sum+i;if (sum==n)printf (”%d 是完数”,n);
else printf(”%d不是完数”,n);return 0;
}
方法二:
/include int main() {
int n,i,sum=0;//sum记录真因数和,初值0 scanf(”%d”,&n);fo«i=l;i<=n/2;i++)〃 找出真因数
ii(n%i==0)sum=sum+i;if (sum==n)printf ("%d 是完数“,n);
else printf("%d不是完数”,n);return 0;
}2、 输出1000以内的完数
#include
int main() {int n,i,sum;
for(n=l;n<=1000;n++)(
〃判断是否是完数开始 sum=0;〃sum记录真因数和,初值0 for(i=l; i<=n/2; i++)〃 找出真因数ii(n%i==0)sum=sum+i;
if(sum==n)printf(”%d ",n);//判断是否是完数结束
)return 0;
}