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
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
#include
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;
}                        

你可能感兴趣的:(【记录】算法题解)