找出1000以内·的自然数中·所有·完数,并统计找到的完数的个数。所谓完数,指恰好等于除它本身之外的因子之和。
【2<n<100,m=sqrt(n),s+=i+n/i,
nm*m,s-=m】
#include<stdio.h>
#include<math.h>
int main(){
int n,i,s,m,count=0;//count用来计算完数的个数,
//2<n<1000来循环遍历,
printf(“找到的完数有:\n”);
for(n=2;n<1000;n++){
s=1;
m=sqrt(n);//为提高效率,找其因子只需要循环到sqrt(n)
for(i=2;i<=m;i++)
if(n%i0)
s+=i+n/i;
if(nm*m)
s-=m;
if(sn){
printf("%d\n",n);
count++;
}
}
printf("\n完数个数=%d\n",count);
return 0;
}
找出1000以内·的自然数中·所有·完数,并统计找到的完数的个数。所谓完数,指恰好等于除它本身之外的因子之和。
最新推荐文章于 2022-01-16 17:30:23 发布
本文介绍了一个算法,用于找出1000以内的所有完数,并统计了完数的数量。完数是指除了自身外,其它所有因子之和等于自身的数。代码使用C语言实现,通过遍历和计算因子的方法高效地找到了这些特殊数。
1万+

被折叠的 条评论
为什么被折叠?



