【南阳理工】 56 阶乘因式分解(一)

描述

给定两个数m,n,其中m是一个素数。

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

输入
第一行是一个整数s(0<s<=100),表示测试数据的组数
随后的s行, 每行有两个整数n,m。
输出
输出m的个数。
样例输入
2
100 5
16 2
样例输出
24
15
来源
网络
上传者
苗栋栋
AC代码:
 
#include<cstdio>
int n,m,t;
int xx(int n)
{
	int ans=0;
	for(int i=2;i<=n;i++)
	{
		while(n!=i)
		{
			if(n%i==0)
			{
				if(i==m)
					ans++;	
				n/=i;
			}
			else 
			    break;
		}
	}
	if(n==m) ans++;
	return ans;	
}
int main()
{
	
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d %d",&n,&m);
		int sum=0;
		while(n>1)
		{
			sum+=xx(n);
			n--;
		}
		printf("%d\n",sum);
	}
	
	
	return 0;
 }         


发布了52 篇原创文章 · 获赞 0 · 访问量 8950
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章