Cod sursa(job #1804164)

Utilizator EmplopiStefan Nitu Emplopi Data 12 noiembrie 2016 11:55:07
Problema GFact Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.78 kb
#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;
}