Pagini recente » Cod sursa (job #2943192) | Cod sursa (job #1662375) | Cod sursa (job #2658881) | Cod sursa (job #2646105) | Cod sursa (job #1804164)
#include <stdio.h>
#include <stdlib.h>
int baga(int n, int div){
int s=0, divc=div;
while(div<=n && div!=0){
s+=n/div;
div*=divc;
}
//printf("pentru n: %d, s: %d\n", n, s);
return s;
}
int calc(int p, int q){
int poz, pas;
poz=1;
pas=1<<30;
//printf("pas: %d", pas);
while(pas!=0){
if(baga(poz+pas, p)<q){
poz+=pas;
//printf("\tDA, cu n: %d, avand in el %d^%d\n", poz+pas, p, q);
}
pas/=2;
}
poz++;
//if(x==0)
//poz=1;
return poz;
}
int main(){
FILE *fin, *fout;
int p, q;
fin=fopen("gfact.in", "r");
fout=fopen("gfact.out", "w");
fscanf(fin, "%d%d", &p, &q);
fprintf(fout, "%d", calc(p, q));
fclose(fin);
fclose(fout);
return 0;
}