青蛇之法海恩仇录游戏:谁能算出1000以内的所有盈数?

来源:百度文库 编辑:高校问答 时间:2024/04/19 12:33:05
首先声明,以下是错误的,谁能调正确了。
printf("\n\n1000以内的盈数有:\n");
for (i=2;i<=1000;i++)
{
int sum=0;
for (j=2;j<=500;j++)
{
if (i%j==0)
{
sum+=j;
}
if (i>sum)
{
printf("%d ",i);
break;
}
}
}

盈数: 一个数如果大于它的各个因子(该数本身除外)之和,则称其为"盈数".

以下是我的程序……^_^

#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
int i,j,sum,max;
printf("\n\n1000以内的盈数有:\n");
for (i=2;i<=1000;i++)
{
sum=1;
max=(int)sqrt(i);
for (j=2;j<=max&&sum<=i;j++)
{
if (i%j==0)
{
sum+=j;
if (j*j!=i) sum+=i/j;
}
}
if (sum>i) printf("%d ",i);
}
}

看程序很像是求质数

什么是盈数啊?