完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
1
2
3
4
5
6
7
8
|
Dim a as Integer ,b as Integer ,c as Integer
For a = 1 To 10000
c = 0
For b = 1 To a \ 2
If a Mod b = 0 Then c = c + b
Next b
If a = c Then Print Str(a)
Next a
|
另附上java版的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.ArrayList;
public class T013 {
public static void main(String[] args){
ArrayList p = new ArrayList(); // 保存每组的分解因子
int count = 0 ; // 计数(完数的总个数)
int sum; // sum = (每个因子之和)
for ( int i= 2 ;i< 10000 ;i++){ // 测试每个数 i
sum = 0 ;
for ( int j= 1 ;j<i/ 2 + 1 ;j++){
if (i%j== 0 ){
p.add(j); // 保存 i 的每个因子
sum += j; // 保存sum(i的所有因子相加之和)
}
}
if (sum==i){ // 如果当前 i 是完数,则输出(i=所有因子之和)
count++;
System.out.printf( "%4d" + " 是完数,因子是" +i+ "=" ,i);
for ( int k= 0 ;k<p.size()- 1 ;k++){
System.out.print(p.get(k)+ "+" );
}
System.out.println(p.get(p.size()- 1 ));
}
p.clear(); // 每个 i 结束,清空数组,重计下一个i的因子。
}
System.out.println( "\n共找到" +count+ "个完数!" );
}
}
|
以上所述就是本文的全部内容了,希望大家能够喜欢。