nyoj 70 阶乘因式分解(二)
阶乘因式分解(二)
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
-
给定两个数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
- 来源
- [苗栋栋]原创
- 上传者
- 苗栋栋
View Code
1 2 /********************************* 3 / Problem: 4 / Algorithm: 5 / Language: C++ 6 / Compiler: MinGW 7 / Date: 12/08/08 8 / 9 / Copyright (C) wujianwei 10 / All rights reserved. 11 ********************************/ 12 13 #include <iostream> 14 #include <cstdio> 15 #include <cstring> 16 #include <cmath> 17 #include <vector> 18 #include <cstring> 19 #include <queue> 20 #include <stack> 21 #include <algorithm> 22 #include <set> 23 24 using namespace std; 25 26 #define INF 0x7fffffff 27 #define EPS 1e-12 28 #define MOD 1000000007 29 #define PI 3.141592653579798 30 #define N 100005 31 const int MAX=1<<28; 32 typedef long long LL; 33 //typedef __int64 INT 34 35 int main() 36 { 37 int T; 38 scanf("%d",&T); 39 while(T--) 40 { 41 int n,m; 42 scanf("%d%d",&n,&m); 43 int sum=0; 44 while(n) 45 { 46 sum+=n/m; 47 n=n/m; 48 } 49 cout<<sum<<endl; 50 } 51 return 0; 52 } 53