Pagini recente » Cod sursa (job #257640) | Cod sursa (job #2110459) | Cod sursa (job #662058) | Cod sursa (job #1739329) | Cod sursa (job #1649712)
#include <stdio.h>
long long putere(long long n,long long k){
long long nr=0,k0=k;
while(n/k!=0){
nr+=n/k;
k*=k0;
}
return nr;
}
long long cautbin(long long k,long long put){
long long i=0,pas=1<<29;
while(pas!=0){
if(putere(i+pas,k)<put)
i+=pas;
pas/=2;
}
return i+1;
}
int main(){
FILE *fin,*fout;
fin=fopen("gfact.in","r");
fout=fopen("gfact.out","w");
long long i=2,j,baza,exp,rasp=0;
fscanf(fin,"%I64d%I64d",&baza,&exp);
while(i*i<=baza){
j=0;
while(baza%i==0){
baza/=i;
j++;
}
j=j*exp;
if(cautbin(i,j)>rasp)
rasp=cautbin(i,j);
i++;
}
if(baza!=1){
j=exp;
if(cautbin(baza,j)>rasp)
rasp=cautbin(baza,j);
}
fprintf(fout,"%I64d",rasp);
fclose(fin);
fclose(fout);
return 0;
}