您的位置:首页 > 其它

南阳oj 阶乘因式分解(一)

2014-10-17 13:52 246 查看
/*

前提:1 2...n 能被m整除的数有n/m

1*2*3*...n的阶乘一定有k=n/m个m

而且这k个m一定来自

1m 2m ....km(因为m是素数所以不会有两个数相乘后产生m的情况)也就是这些数相乘(1m*2m*3m*...km)有多少个m

我们知道有k个m,所以相乘是就不用把这些m乘进去(即我们算1m*2m*3m....*km==(1*2*3...*k)*(m^k)

时算(1*2*3...*k)有多少个m再加上k=n/m就可以了)

而1*2*3...*k含有多少个m就又转化成了上面的问题

*/

#include<stdio.h>

int main()

{

int t,m,n,sum;

scanf("%d",&t);

while(t--)

{

sum = 0;

scanf("%d%d",&m,&n);

while(m>0)

{

sum = sum + m/n;

m = m/n;

}

printf("%d\n",sum);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: