怎么用java语言求1000内的完数,请大侠们加上解释语句,我是新手了。网上看了好几种方法,不中。
解决方案 »
- 为什么我的while(left > 1) 一直报错??
- 有谁又用java实现的bloom filter么?
- jxl 读取excel 表的 数据 后 如何 再 继续 写入新 数据覆盖。。
- 我急用qq号,申请了好长时间也没有申请下来63分求一个
- swt如何支持look and feel?
- for ( i=0,j=s.length-1;i<=j; i++,j--) 初学这个语句不明白,等同什么
- 如何在JTextArea里边显示一个int型的数字?
- 怎么向别人发送电子邮件?
- URLclassLoader的问题
- java Arraylist remove问题
- 如在在布局管理器里 并排显示两个JTable
- 对继承的疑问,求教大家!
public class Perfect {
public static void main(String[] args){
int r,j,i;
for(i=1; i<1000; i++){//1000内的完数
r = 0;
for(j=1; j<i; j++){//找i的因子
if(i%j == 0){
r = r + j;//将i的因子相加
}
}
if(r == i){//等于除它本身外的因子之和
System.out.println(r);
}
}
}}
public class TestEndOfAFew {
public static void main(String[] args) {
System.out.println("1000以内的完数有:");
for (int i = 1, sum = 0; i <= 1000; i++) {//遍历1...1000
sum = 0; // 存放所有因子的和,初始化为0
int maxFactor = i/2;//最大因子 是一个数的一半
for (int j = 1; j <= maxFactor; j++) //遍历所有可能的因子
if (i % j == 0)//确定j是i的因子
sum += j;//累加因子和
if (sum == i)//判断是否为完数
System.out.print(i + " ");
}
}
}