Pagini recente » Istoria paginii utilizator/bot11_frank | Diferente pentru utilizator/alex72101 intre reviziile 6 si 3 | Monitorul de evaluare | Diferente pentru utilizator/divaddd intre reviziile 26 si 27 | Cod sursa (job #958045)
Cod sursa(job #958045)
#include<stdio.h>
#include<math.h>
int v[20],put[20];
int putere(int a,int b)
{
int i,r=1;
for(i=1;i<=b;i++)
r*=a;
return r;
}
int main()
{
freopen("gfact.in","r",stdin);
freopen("gfact.out","w",stdout);
int p,q,i,j=0,nr=0,max=0;
long long b=1,prod=1;
scanf("%d%d",&p,&q);
p=pow(p,q);
while(p%2==0)
{
p=p/2;
j++;
}
if(j>0)
{
v[++nr]=2;
put[nr]=putere(2,j);
}
for(i=3;i<=p;i+=2)
{
j=0;
while(p%i==0)
{
p=p/i;
j++;
}
if(j>0)
{
v[++nr]=i;
put[nr]=putere(i,j);
}
}
for(i=1;i<=nr;i++)
if(put[i]>max)
max=put[i];
while(prod<max)
{
b++;
prod=prod*b;
}
for(i=1;i<=nr;i++)
if(b<v[i])
b=v[i];
printf("%d\n",b);
return 0;
}