找出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-03-25 16:49:15 发布