只求1000以内的完数
public class WanShu_YinZi {
public static void main(String[] args) {
System.out.print("1000以内的完数有:");
for(int i=2;i<=1000;i++) {
int sum=0;
for(int k=1;k<i;k++) {
if(i%k==0) {
sum+=k;
}
}
if(sum==i) System.out.print(i+" ");
}
}
}
结果显示:
1000以内的完数有:6 28 496
不仅求出1000以内的完数,而且输出每个完数的因子
public class WanShu_YinZi2 {
public static void main(String[] args) {
int i,k;
System.out.println("1000以内的完数有:");
for( i=2;i<=1000;i++) {
int sum=0;
for( k=1;k<i;k++) {
if(i%k==0) {
sum+=k;
}
}
if(sum==i) {
System.out.print(i+"是完数,且该完数的因子为:");
for(k=1;k<i;k++) {
if(i%k==0)
System.out.print(k+" ");
}
System.out.println();
}
}
}
}
结果显示:
1000以内的完数有:
6是完数,且该完数的因子为:1 2 3
28是完数,且该完数的因子为:1 2 4 7 14
496是完数,且该完数的因子为:1 2 4 8 16 31 62 124 248