一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写一个应用程序,求1000之内的所有完数。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;
}
}
}
这是我写的,可是运行得不想要的到结果。
希望各位大虾帮帮忙,谢谢!!!

解决方案 »

  1.   

    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;
    }
    j从1开始
      

  2.   

    public class Wanshu {
      public static void main(String args[]) {
        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;
        }
      }
    }
    /*
    完数i=6
    完数i=28
    完数i=496
    */