服务器之家

服务器之家 > 正文

Basic求10000以内的完美数

时间:2021-10-14 13:28     来源/作者:VB教程网

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

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

标签:

相关文章

热门资讯

yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
2021年耽改剧名单 2021要播出的59部耽改剧列表
2021年耽改剧名单 2021要播出的59部耽改剧列表 2021-03-05
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部