• Java版求1000以内的完全数


    /* 
     * 若一个自然数,它所有的真因子(即除了自身以外的约数)的和恰好等于它本身,这种数叫做完全数,简称完数。 
     * 例如:6=1+2+3。
     * 题目:求1000以内的完全数。
     */
    public class PerfectNumber {
    	
    	// 数字上限
    	static Integer limit = 1000;
    
    	public static void main(String[] args) {
    		System.out.println(limit + "以内的完全数有:");
    		fun(limit);
    	}
    
    	public static void fun(Integer limit) {
    		for (int i = 1; i <= limit; i++) {
    			// 定义真因子之和变量
    			int sum = 0;
    			for (int j = 1; j < i / 2 + 1; j++) {
    				// 如果当前数能被整除
    				if (i % j == 0) {
    					sum += j;
    				}
    			}
    			// 如果真因子(即除了自身以外的约数)的和恰好等于它本身,说明是完全数。
    			if (sum == i) {
    				System.out.println(i);
    			}
    		}
    	}
    }
    

    输出结果:

    1000以内的完全数有:
    6
    28
    496
  • 相关阅读:
    杭电2042
    杭电2041
    杭电2040
    杭电2046
    SPOJ
    SPOJ
    SPOJ
    HDU
    HDU
    HDU
  • 原文地址:https://www.cnblogs.com/GalaxyNote/p/5399301.html
Copyright © 2020-2023  润新知