NYOJ
来源:互联网 发布:java web开发需求 编辑:程序博客网 时间:2024/06/07 22:41
NYOJ - 70:阶乘因式分解(二)
标签:算法、数论
参考资料:质因数分解式
http://blog.csdn.net/wingrez/article/details/78054722相似题目:
NYOJ - 56:阶乘因式分解(一)
http://blog.csdn.net/wingrez/article/details/78056984
题目
给定两个数n,m,其中m是一个素数。将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m。注:^为求幂符号。
输入
第一行是一个整数s(0<s<=100),表示测试数据的组数。随后的s行, 每行有两个整数n,m。
输出
输出m的个数。
输入样例
3
100 5
16 2
1000000000 13
输出样例
24
15
83333329
参考代码
//算法1#include<cstdio>int main(){ int t; int n,m; scanf("%d",&t); for(int i=1;i<=t;i++) { scanf("%d%d",&n,&m); int cnt=0; for(int j=m;j<=n;j+=m) { int temp=j; while(temp%m==0) { temp/=m; cnt++; } } printf("%d\n",cnt); } return 0;}
//算法2#include<cstdio>int main(){ int t; int n,m; scanf("%d",&t); for(int i=1;i<=t;i++) { scanf("%d%d",&n,&m); int ans=0; while(n>0) { ans+=n/m; n/=m; } printf("%d\n",ans); } return 0;}