寻找“完数”

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。


题目分析:分别求出所有因数相加,与原数比较

	public static void perfectNum() {

		for (int i = 1; i <= 1000; i++) {
			//判断完数
			if (feb(i)) {
				System.out.print(i + " ");
			}
		}
	}
	
	public static boolean feb(int k) {
		
		int sum=0;
		//1为完数 无须分解因数
		if (k == 1) {

			return true;
		}
		//分解因数并求和 
		for (int i = 1; i <= (k / 2); i++) {
			if (k % i == 0) {
				sum += i;
			}
		}
		//判断是否和原数相等
		if(k==sum){
			return true;
		}
		else{
			return false;
		}
	}


你可能感兴趣的:(JAVA算法练习,java,编程)