求1到100000之间的所有的“完全数”,好像是叫“完全数”,总之像这样的就是了。
例如6=1+2+3; 2和3都是6的因数。还有28也是:28=1+2+4+7+14;
就像上面的那样。
代码如下:
package com;
import java.util.ArrayList;
import java.util.List;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t = new Test();
t.aa();
}
public void aa(){
List<Integer> list = new ArrayList<Integer>();
long t1 = System.currentTimeMillis();
for(int i=2;i<100000;i++){
list.clear();
int temp = i;
for(int j=2;j<i;j++){
if(i % j == 0){
list.add(j);
}
}
int temp2 = 0;
for(int m=0;m<list.size();m++){
temp2 = temp2 + list.get(m);
}
if(temp == temp2+1){
System.out.println("temp="+temp);
long t2 = System.currentTimeMillis();
System.out.println("time=" + (t2 - t1));
}
}
}
}