一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写一个应用程序,求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; }