0020:打印完数

版权声明: https://blog.csdn.net/SunPeishuai/article/details/82012782

描述

一个数如果恰好等于它的因子之和,这个数就成为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序打印出1000之内(包括1000)所有的完数,并按如下格式输出其所有因子:

6 its factors are 1,2,3

输入

无输入

输出

输出1000以内所有的完数及其因子,每行一个完数。

import java.util.Scanner;
import java.text.DecimalFormat;
public class Main{
	 public static void main(String[] args) {
        Scanner in= new Scanner(System.in);
        int sum;
        for(int i=1;i<=1000;i++) {
        	sum=0;
        	for(int j=1;j<i;j++){
        		if(i%j==0) {
        			sum+=j;
        		}
        	}
        	if(sum==i) {
        		System.out.print(i+" its factors are ");
        		for(int j=1;j<i;j++) {
        			if(i%j==0) {
        				sum-=j;
        				if(sum==0)
        				System.out.print(j);
        				else System.out.print(j+",");
        					
        			}
        		}
        		System.out.println();
        	}
        }
     }
}

猜你喜欢

转载自blog.csdn.net/SunPeishuai/article/details/82012782