设a<b是正整数,如果a的因子和是b,b的因子和是a,则称a,b是亲和数对, 例如: 220的因子和是1+2+4+5+10+11+20+22+44+55+110=284 284的因子和是1+2+4+71+142=220 220,284是最小的一对亲和数,计算 (1)a<100000时的亲和数对 (2)a<10000000时的亲和数对 (3)a<500000000时的亲和数对 答案: #include <stdio.h> #include <math.h> long topgene(long x) {long i,ii,top=1; i=sqrt(x); for (ii=2;ii<i;ii++) if (x%ii==0) top+=ii+x/ii; if (ii*ii==x) top+=x; return(top); } main() {long i,ii,max=-1; printf("\ninput the top:"); while(max<=0) scanf("%ld",&max); for (i=2;i<max;i++) {ii=topgene(i); if(i>ii&&(i%2+ii%2)!=1&&(i==topgene(ii))) printf("%10ld%10ld\n",i,ii); } }
正文
亲自数问题2008-08-16 18:11:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/yzrj/37659.html
阅读(1641) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论