Basic求10000以内的完美数
更新时间:2015年05月18日 11:28:25 投稿:hebedich
一个数的所有真因数加起来正好等于这个自然数本身,在数学上,具有这种性质的自然数叫做完全数。关键是求出该自然数k的所有因子。如果k%i为0,则i为k的因子,用循环语句求出k 的所有真因子(1<=i<=k/2),把它们求和,看是否等于k来判断。
完全数(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+"个完数!"); } }
以上所述就是本文的全部内容了,希望大家能够喜欢。
相关文章
Windows 10 x64 安装 Visual Basic 
这篇文章主要介绍了Windows 10 x64 安装 Visual Basic 6.0 SP6注意事项,需要的朋友可以参考下2023-06-06在VB中遍历文件并用正则表达式完成复制及vb实现重命名、拷贝文件夹的方法
这篇文章主要介绍了在VB中遍历文件并用正则表达式完成复制及vb实现重命名、拷贝文件夹的方法,需要的朋友可以参考下2018-12-12VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法
这篇文章主要介绍了VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法,需要的朋友可以参考下2014-07-07
最新评论