Cod sursa(job #348314)

Utilizator hasegandaniHasegan Daniel hasegandani Data 15 septembrie 2009 11:10:32
Problema GFact Scor 20
Compilator cpp Status done
Runda Papiu Contest #1 Marime 0.69 kb
#include<stdio.h>

long long p,q,s,i,j,k,l,mp,ni,max,rez;

int main()
{
    freopen("gfact.in","r",stdin);
    freopen("gfact.out","w",stdout);
    scanf("%lld%lld",&p,&q);
    
    for(i=2;i<=p;++i)
        {
        for(k=1 , l=0;p%i==0;p/=i , k*=i , ++l);
        if (max<k)
            {
            max=k;
            ni=i;
            mp=l;
            }
        }
        
 //   printf("%lld = %lld la %lld\n",max,ni,mp);
        
    for(j=2 , s=1 ; s+j<=q ; s+=j , ++j);
    --j;
    
    i=max;
 //   printf("%d %d ",i,j);
    
    rez=1;
    for(long long b=i;j;j/=2 , b*=i)
        if (j%2==1)
            rez*=b;
    
    printf("%lld\n",rez);
    return 0;
}