文章
8
粉丝
216
获赞
20
访问
67.6k
#include<bits/stdc++.h>
using namespace std;
//得到数n的质因子及其个数
void getPrime(vector<int>& factors, int n){
for(int i=2; i*i<=n; i++){
while(n % i == 0){
factors[i]++;
n /= i;
if(n <= 1)
return;
}
}
if(n > 1)
factors[n]++;
}
int main(){
int n, a;
while(cin >> n >> a){
vector<int> factor_a(1000), factor_n(1000);
getPrime(factor_a, a);
//计算阶乘的每一个数的质因子及其个数;并进行个数的累加
for(int i=2; i<=n; i++)
getPrime(factor_n, i);
int k = 1000;
//看2~n包含多少个对应的质因子
for(int i=2; i<=a; i++)
if(factor_a[i])
k = min(k, factor_n[i]/factor_a[i]);
cout << k << endl;
}
}
登录后发布评论
暂无评论,来抢沙发