Cod sursa(job #2309747)

Utilizator EdgeLordXDOvidiuPita EdgeLordXD Data 29 decembrie 2018 18:53:39
Problema GFact Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<bits/stdc++.h>
#define ll long long
#define f first
#define s second
using namespace std;
ifstream in("gfact.in");
ofstream out("gfact.out");
ll p;
ll cacat(ll n){
    ll nr=n/p,i=2;
    while(pow(p,i)<=n){
        nr+=(i-1);
        ++i;
    }
    //cout<<n<<" "<<nr<<"\n";
    return nr;
}
int main(){
    ll q, pas=1LL<<60, r=0;
    double rad;
    cin>>p>>q;
    rad=sqrt(p);
    while(rad*rad==p){
        q*=2;
        p=rad;
        rad=sqrt(p);
    }//cout<<q<<" "<<p<<"\n\n";
    while(pas){
        if(cacat(r+pas)<q)
            r+=pas;// cout<<pas<<" ;";
        pas/=2;
    }
    cout<<r+1;
    return 0;
}