Cod sursa(job #958090)

Utilizator thewildnathNathan Wildenberg thewildnath Data 6 iunie 2013 22:00:52
Problema GFact Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
#include<math.h>

long long v[20],put[20];



int main()
{
    freopen("gfact.in","r",stdin);
    freopen("gfact.out","w",stdout);
    long long p,q,i,j=0,nr=0,max=0;
    long long b,exp;
    scanf("%d%d",&p,&q);
    p=pow(p,q);

    for(i=2;i<=p;i++)
    {
        j=0;
        while(p%i==0)
        {
            p=p/i;
            j++;
        }
        if(j>0)
        {
            v[++nr]=i;
            put[nr]=j;
        }
    }

    for(i=1;i<=nr;i++)
    {
        exp=1;
        b=v[i];
        while(exp<put[i])
        {
            b+=v[i];
            exp+=b/v[i];
        }
        if(b>max)
            max=b;
    }

    printf("%d\n",max);
    return 0;
}