//完数(如果一个数等于其因子之和,这个数就成为完数) //求10000以内的所有完数
@Test public void test1() { long p[]=new long[100];//保存完数分解的因子 long i,num,s,c=0; int count;//保存一个完数的因子总数 for(num=2;num<=10000;num++){ count=0; s=num; for(i=1;i<num;i++){ if(num%i==0){ p[count++]=i; s-=i; } } if(s==0){ System.out.println(num+"是一个完数,因子是:"); for(int j=0;j<count;j++){ System.out.print(p[j]+" "); } System.out.println(); c++; } } System.out.println("10000以内总共有"+c+"个完数"); }
07-14