您的位置:首页 > 其它

找出一个范围中的所有完数

2016-11-15 13:26 204 查看


一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。
#include<stdio.h>
int Com(int i);
int main()
{
int begin, end, a=0;
scanf("%d %d", &begin, &end);
for (begin; begin <= end; end--)
{
if (Com(end))
{
a = end;
break;
}
}
for (begin; begin <= end; begin++)
{
if (Com(begin) && begin != a)
{
printf("%d ", begin);
}
else if (Com(begin) && begin == a)
{
printf("%d", a);
}
}
if (a == 0) printf("NIL\n");

system("pause");
return 0;
}
int Com(int i)
{
int c=0, d=0;
if (i > 1)
{
for (int b = 1; b < i; b++)
{
if (i%b == 0)
{
d += b;
}
}
if (d == i) c = 1;
}
return c;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐