日期:2014-05-20  浏览次数:20679 次

请各位大虾们指导一下,java小程序
一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写一个应用程序,求1000之内的所有完数。
[code=Java][/code]
public class Wanshu
{
public static void main(String args[])
{
int num=0;
int i,j;
for(i=2;i<=1000;i++)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
num+=j-1;
}
}
if(num==i)
System.out.println("完数i="+i);
num=0;
}
}
}




这是我写的,可是运行得不想要的到结果。
希望各位大虾帮帮忙,谢谢!!!

------解决方案--------------------
Java code
int num = 0;
        int i, j;
        for (i = 2; i <= 1000; i++) {
            for (j = 1; j <= i / 2; j++) {
                if (i % j == 0) {
                    num += j ;
                }
            }
            if (num == i)
                System.out.println("完数i=" + i);
            num = 0;
        }