您的位置:首页 > 其它

NYOJ - 56:阶乘因式分解(一)

2017-09-21 21:13 267 查看

NYOJ - 56:阶乘因式分解(一)

标签:算法、数论

参考资料:http://blog.csdn.net/wingrez/article/details/78054722(质因数分解式)

相似题目:

NYOJ - 70:阶乘因式分解(二)

http://blog.csdn.net/wingrez/article/details/78057964

题目

给定两个数n,m,其中m是一个素数。将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m。

输入

第一行是一个整数s(0< s <=100)表示测试数据的组数随后的s行, 每行有两个整数n,m。

输出

输出m的个数。

输入样例

2

100 5

16 2

输出样例

24

15

参考代码

//算法1
#include<stdio.h>
int main()
{
int s,n,m;
int i,j;
scanf("%d",&s);
while(s--)
{
int cnt=0;
scanf("%d%d",&n,&m);
for(i=m;i<=n;i+=m)
{
int temp=i;
while(temp%m==0)
{
temp/=m;
cnt++;
}
}
printf("%d\n",cnt);
}
return 0;
}


//算法2
#include<stdio.h>
#include<math.h>
int main()
{
int s,n,m;
int i,j;
scanf("%d",&s);
while(s--)
{
int ans=0;
scanf("%d%d",&n,&m);
while(n>0)
{
ans+=n/m;
n/=m;
}
printf("%d\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 数论