黑马程序员技术交流社区
标题:
打印出10000以内所有的完数
[打印本页]
作者:
往事如风555
时间:
2015-10-17 23:38
标题:
打印出10000以内所有的完数
//题目:一个数如果恰好等于它的因子(包括1,不包括本身)之和,这个数就称为"完数"。
//例如6是一个完数,因为6=1+2+3.编程找出10000以内的所有完数。
public class Demo3 {
public static void main(String[] args) {
for (int i = 1; i <= 10000; i++) {
if (isWanShu(i)) { //如果是完数,就打印
System.out.println(i);
}
}
}
// 以下是判断给定整数是否是完数的方法,如果是,返回true,不是则返回false。
private static boolean isWanShu(int n) {
boolean flag = false;
int sum = 0;
for (int i = 1; i <= n / 2; i++) {
if (n % i == 0) {
sum += i; // 各因子累加
}
}
if (sum == n) { // 判断累加结果是否等于该数本身
flag = true;
}
return flag;
}
}
作者:
zhy阿狸
时间:
2015-10-18 09:43
你确定对吗?
作者:
往事如风555
时间:
2015-10-18 21:07
zhy阿狸 发表于 2015-10-18 09:43
你确定对吗?
应该是对的啊,总共是四个。 你发现哪里逻辑有问题吗?
作者:
吾要娶她
时间:
2015-10-18 22:11
小伙子你是0908的吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2