Cod sursa(job #1804199)

Utilizator rares1012Rares Cautis rares1012 Data 12 noiembrie 2016 12:30:12
Problema GFact Scor 5
Compilator c Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>
#include <stdlib.h>

inline long long int nrdiv(long long int n,long long int k)
{
    int s=0;
    while(n>0){
        s+=n/k;
        n=n/k;
    }
    return s;
}

int main()
{
    long long int z,q,p=1,r=0;
    FILE*fi,*fo;
    fi=fopen("gfact.in","r");
    fo=fopen("gfact.out","w");
    fscanf(fi,"%lld%lld",&z,&q);
    p=p<<30;
    while(p>0)
        {
            if(nrdiv(p+r,z)<=q)
                r+=p;
            p/=2;
        }
    while(nrdiv(r,z)>=q)
        r--;
    r++;
    if(nrdiv(r,z)==q)
        fprintf(fo,"%d",r);
    else fprintf(fo,"-1");
    fclose(fi);
    fclose(fo);
    return 0;
}