完全數(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+ "個完數!" ); } } |
以上所述就是本文的全部內容了,希望大家能夠喜歡。