注册 登录
编程论坛 JAVA论坛

自学java之作业2:求老师看下代码还能完善的地方.谢谢

jscs_he 发布于 2016-03-23 13:33, 1999 次点击
题目是:用循环写出1000以内所有的完数
class zuoye2
{
    public static void main(String [] args)
    {
        /*    思路:
                列出1到1000的所有数字:for(int i =1;i <=1000;i++)
                完数等于:不包括自己的所有因子的和
                累加 设置变量 int sum = 0;
                从1到1000的数字中列出有因子,累加紧sum
                当sum 等于 i的时候 说明就是完数
        */
            int i,j,sum;
            for (i =1;i <=1000;i++ )//列出1到1000的所有的数字
            {
                sum =0 ;//存放因子的和
                for (j =1;j<=i ;j++ )//求出i的因子数量的和 并且累加到sum中
                {
                    if(i%j==0)
                    {  sum +=j;
                    }
                }
                    if (sum==i)//如果sum=i 就说明因子的数的和等于自己也就是完数
                    {
                        System.out.print("1000以内的完数有:");
                        System.out.print(i);
                        System.out.println();
                    }
               
            }
    }
}
2 回复
#2
grmmylbs2016-03-23 13:57
不能包含自己,所以这一句
for (j =1;j<i ;j++ )//求出i的因子数量的和 并且累加到sum中
#3
jscs_he2016-03-23 14:34
回复 2楼 grmmylbs
谢谢.这个已经改掉了,发的时候忘记了!
1