Cod sursa(job #2067536)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 16 noiembrie 2017 16:24:41
Problema GFact Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
using namespace std;
ifstream cin("gfact.in");
ofstream cout("gfact.out");
#define ll long long
ll f(ll x,ll prim)
{
    ll sol=0;
    while(x)
    {
        sol+=x/prim;
        x/=prim;
    }
    return sol;
}
struct fint
{
    int a,b;
};
fint v[55];
ll a,b,r=0,pas=1LL<<60,y=0;
ll slove(ll x)
{
    for(ll i=1;i<=y;i++)
        if(f(x,v[i].a)<v[i].b)
            return 0;
    return 1;
}
int main()
{
    cin>>a>>b;
    for(ll i=2;i<=a;i++)
        if(a%i==0)
        {
            y++;
            v[y].a=i;
            while(a%i==0)
            {
                a/=i;
                v[y].b++;
            }
        }
    while(pas)
    {
        if(slove(r+pas)==0)
            r+=pas;
        pas/=2;
    }
    cout<<r+1;
    return 0;
}