Pagini recente » Cod sursa (job #1882890) | Cod sursa (job #21093) | Cod sursa (job #2541943) | Cod sursa (job #918262) | Cod sursa (job #1649745)
#include <stdio.h>
const long long lim = 1LL << 50;
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=lim;
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,"%lld%lld",&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,"%lld",rasp);
fclose(fin);
fclose(fout);
return 0;
}