一个数如果恰好等于它的因子和,这个数就成为完数。
例如:6 = 1 + 2 + 3。再如 8 的因子和是7(即1 + 2 + 4),8不是完数。
编程找出1000以内的所有完数。
public class PerfectNum { public static void main(String[] args) { for (int i=1; i <= 999; i++) { if (isPrefectNum(i)) { System.out.println(i); } } } /** * 判断num是否为完数 * @param num 入参num * @return true 完数;false 不是完数 */ public static boolean isPrefectNum(int num) { // 定义因子和,默认加上了因子1 int factorSum = 0; for (int i=1; i<num; i++) { // 如果num 模 i 等于0 ,说明i 为 num 的因子 if (num % i == 0) { // 将i值加到factorSum 上 factorSum += i; } } return factorSum == num; } }
原文地址:http://blog.csdn.net/magi1201/article/details/45342541