前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Basic求10000以内的完美数的代码分享

Basic求10000以内的完美数的代码分享

原创
作者头像
大师级码师
发布2022-11-06 19:19:28
4450
发布2022-11-06 19:19:28
举报
文章被收录于专栏:大师级码师大师级码师

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

1

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

2

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档