Basic求10000以内的完美数

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

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版的代码

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+"个完数!");

}

}

以上所述就是本文的全部内容了,希望大家能够喜欢。

以上是 Basic求10000以内的完美数 的全部内容, 来源链接: utcz.com/z/359847.html

回到顶部