Cod sursa(job #1803690)

Utilizator atimofteTimofte Alexandra atimofte Data 11 noiembrie 2016 18:06:57
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <stdio.h>
inline long long leg(long long n){
    long long p5=5LL,r=0LL;
    while(p5<=n){
        r+=n/p5;
        p5*=5LL;
    }
    return r;
}
int main()
{
    FILE*fin,*fout;
    long long a,r,p;
    fin=fopen("fact.in","r");
    fscanf(fin,"%lld",&p);
    fclose(fin);
    for(a=(1<<30),r=0;a>0;a>>=1)
        if(leg(r+a)<p)
            r+=a;
    fout=fopen("fact.out","w");
    if(leg(r+1)==p)
        fprintf(fout,"%lld\n",r+1);
    else
        fprintf(fout,"-1\n");
    fclose(fout);
    return 0;
}