首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

9度OJ 教程56 约数的个数(感谢炮神的约数公式)

2013-02-19 
九度OJ 教程56 约数的个数(感谢炮神的约数公式)题目地址:http://ac.jobdu.com/problem.php?cid1040&pid5

九度OJ 教程56 约数的个数(感谢炮神的约数公式)

题目地址:http://ac.jobdu.com/problem.php?cid=1040&pid=55


//九度OJ 教程56 约数的个数(感谢炮神的约数公式)//http://ac.jobdu.com/problem.php?cid=1040&pid=55//leizh007大神的约数公式,借鉴写的代码,感谢炮神#include <stdio.h>#define MAXS 100004int mark[MAXS]={0},count=0;long prime[MAXS];int main(){long i,j,k,n,ans,a;for(i=2;i<MAXS;i++){if(mark[i])continue;prime[++count]=i;for(j=i*i;j<MAXS;j+=i)mark[j]=1;}while(~scanf("%ld",&n)){for(i=1;i<=n;i++)//纯粹为了读n次数,没实际用处。{ans=1;scanf("%ld",&a);for(j=1;j<count;j++){k=1;while(a%prime[j]==0){k++;a/=prime[j];}ans*=k;//牛的必然牛,排列吧组合吧!if(a==1)break;}if(a!=1)ans*=2;//牛的必然牛,防止另一个素数的出现。printf("%ld\n",ans);}}return 0;}


热点排行