萌新求助,第七个点挂了
查看原帖
萌新求助,第七个点挂了
116640
Eaoci楼主2021/7/16 16:58
#include<iostream>
#include<cmath>
#define ll long long 
using namespace std;
ll n,k,ans=1e18;
bool sushu(ll x){
	if(x==1)return 0;
    if(x==2||x==3)
        return 1;
    if(x%6!=1&&x%6!=5)
        return 0;
    for(ll i=5;i*i<=x;i+=6)
        if(x%i==0||x%(i+2)==0)return 0;
    return 1;
}
int main(){
	cin>>n>>k;
	for(ll i=1;i*i<=k;i++){
		if(sushu(k)){
			ans=0;
			for(ll j=k;j<=n;j*=k)ans+=(n/j);
			break;
		}
		if(i==1)continue;
		if(k%i==0){
			ll p,e,g,l;
			if(sushu(i)){
				p=i,e=0,g=0,l=k;
				while(l%p==0){
					e++;
					l/=p;
				}
				if(e){
					for(ll j=p;j<=n;j*=p)g+=(n/j);
					ans=min(ans,(g/e));
				}
			}
			if(sushu(k/i)){
				p=k/i,e=0,g=0,l=k;
				while(l%p==0){
					e++;
					l/=p;
				}
				if(e){
					for(ll j=p;j<=n;j*=p)g+=(n/j);
					ans=min(ans,(g/e));
				}
			}
		}
	}
	cout<<ans;
	return 0;
}
2021/7/16 16:58
加载中...