从网上找到一份编程练习题,我决定将里面的题目全都做一遍。 |
|
|
/*
题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 ? 找出1000以内的所有完数。
*/
class WanShuDemo{
public static void main(String[] args) {
wanShu();
}
/**
打印1~1000之间的完数
*/
public static void wanShu(){
int sum; //将sum定义在循环外,可以减少内存的分配
for (int i=1;i<=1000;i++ ){
sum=0;
for (int j=1;j<i;j++){
if (i%j==0){ //求i的所有因子
sum+=j;
}
}
if (i==sum){
System.out.print(i+" ");
}
}
}
}
|