描述
给定两个数m,n,其中m是一个素数。
将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m。
-
输入
-
第一行是一个整数s(0<s<=100),表示测试数据的组数
随后的s行, 每行有两个整数n,m。
输出
- 输出m的个数。 样例输入
-
2 100 5 16 2
样例输出
-
24
15
-
话说,,,,,这南阳oj给我推了这么个水题,,,,,
-
这个很容易,不需要打表,从m开始计算,每次加个m,可以略过不是m倍数的数字。节省时间
-
QQ1174371035
#include <stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<math.h> using namespace std; int main() { int s; scanf("%d",&s); while(s--) { int n,m; int sum=0;///计算结果 scanf("%d%d",&n,&m); for(int i=m;i<=n;i+=m)///从m开始计算,每次加个m,可以略过不是m倍数的数字。节省时间 { int i1=i; while(i1%m==0) { i1/=m; sum++; } } printf("%d\n",sum); } return 0; }
-