题目描述
编写程序,要求输出a到b之间的所有完全数。所谓完全数是只指其真因子(除自身以外的因子)之和与它本身相等的正整数。如6=1+2+3,6是一个完全数。
输入要求
输入两个正整数a和b。
输出要求
输出区间[a,b]之间的所有完全数。每个完全数占一行。
输入样例
1 10000
输出样例
6 28 496 8128
答案
#include<stdio.h>
int main(){
int a,b,i=a,j=1,n;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++){
n=0;
for(j=1;j<i;j++){
if(i%j==0){
n+=j;
}
}
if(n==i){
printf("%d\n",i);
}
}
return 0;
}
运用知识点
嵌套循环
⭐注意
因要输出每个完全数,将输出放在循环内
每次循环要将n初始化值,以此满足接下来的判断条件