虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > VB编程 > Basic求10000以内的完美数

Basic求10000以内的完美数
类别:VB编程   作者:码皇   来源:互联网   点击:

一个数的所有真因数加起来正好等于这个自然数本身,在数学上,具有这种性质的自然数叫做完全数。关键是求出该自然数k的所有因子。如果k%i为0,则i为k的因子,用循环语句求出k 的所有真因子(1<=i<=k 2),把它们求和,看是否等于k来判断。

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

    Dim a as Integer,b as Integer,c as IntegerFor a = 1 To 10000c = 0For b = 1 To a 2If a Mod b = 0 Then c = c + bNext bIf 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+"个完数!");
    }
    }

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

相关热词搜索: 完美数 完全数