Cod sursa(job #2284073)

Utilizator victor1306Victor Mihaila victor1306 Data 16 noiembrie 2018 19:03:07
Problema GFact Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;
ifstream cin("gfact.in");
ofstream cout("gfact.out");
const int L=10;
long long divmax(long long n){
    int k=0;
    for(int i=2;i<=n/2;i++){
        if(n%i==0){
            k=i;
        }
    }
    if(k==0){
        k=n;
    }
    return k;
}
long long nrp(int n,long long m){
    int nr=0;
    while(n>=divmax(m)){
        nr+=n/divmax(m);
        n/=divmax(m);
    }
    return nr;
}
long long caut(int n,long long m){
    int r=0,pas=1<<L;
    while(pas!=0){
        if(nrp(r+pas,m)<n){
            r+=pas;
        }
        pas/=2;
    }
    return r+1;
}
int main()
{
   int p,q;
   cin>>p>>q;
   int r=caut(q,p);
   if(nrp(r,p)==q){
    cout<<r;
   }
    return 0;
}