package Java2012大赛.test;
import java.util.ArrayList;
import java.util.List;
public class 完数 {
/**一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
*/
private static List list=new ArrayList();
private static List lists=new ArrayList();
public static void main(String[] args) {
// TODO Auto-generated method stub
int i;
for(i=1;i<=1000;i++)
fx(i);
System.out.println(lists);
}
private static void fx(int i) {
if(i==1){
lists.add(1);
return;
} if(i==2)
return;
int sum=1;
int result=0;
int a=(int) Math.sqrt(i);
for(int k=2;k<=a;k++)
if(i%k==0)
sum+=k+i/k;
if(sum==i)
lists.add(i);
}
}
完数
最新推荐文章于 2020-04-20 09:51:24 发布