"完数"是一个正整数,且满足以下条件:该数等于它所有因子之和。如:6=1+2+3,28=1+2+4+7+14。现要求找出范围[m,n]内的所有完数。
输入格式:
输入表示范围的两个正整数m和n(0<m<=n<=10000)。
输出格式:
输出找到的所有完数,每个数后面带一个空格。如果给定范围内不存在完数,则输出no。
输入样例1:
5 500
输出样例1:
6 28 496
输入样例2:
50 450
输出样例2:
no
#include<stdio.h>
int main()
{
int x, i, sum,m,n,k=0;
scanf("%d %d",&m,&n);
x = m;
while(x >= m&&x<=n) {
sum = 0;
for(i = 1; i < x; i++)
if(x % i == 0)
sum += i;
if(x == sum)
{printf("%d ", x);
k++;
}
x++;
}
if(k==0)
printf("no");
return 0;
}