Basic求10000以内的完美数
完全数(Perfectnumber),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
DimaasInteger,basInteger,casInteger Fora=1To10000 c=0 Forb=1Toa\2 IfaModb=0Thenc=c+b Nextb Ifa=cThenPrintStr(a) Nexta
另附上java版的代码
importjava.util.ArrayList; publicclassT013{ publicstaticvoidmain(String[]args){ ArrayListp=newArrayList();//保存每组的分解因子 intcount=0;//计数(完数的总个数) intsum;//sum=(每个因子之和) for(inti=2;i<10000;i++){//测试每个数i sum=0; for(intj=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(intk=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+"个完数!"); } }
以上所述就是本文的全部内容了,希望大家能够喜欢。