首先得了解完数的定义,完数的定义:一个数如果恰好等于它的因子之和,那么则称这个数为"完数"。example:6=1+2+3。
实现代码如下所示:
public class wanshu{ public static void main(String[] args){ for(int i = 1;i <= 1000;i++){//遍历1000以内的数 int sum = 0; for(int j = 1;j <= i/2;j++){//优化1:只需要和i/2相比较,优化了时间。 if(i % j == 0){ sum += j; } } if(i == sum){//如果输入的i和累加之后的数值相同,那就说明这个数是完数。 System.out.println(i); } } } }