Cod sursa(job #1698240)

Utilizator oldatlantianSerban Cercelescu oldatlantian Data 3 mai 2016 23:33:58
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <stdio.h>

long long czero(long long arg){
    long long ans = 0;
    while(arg) {
        ans+=arg/5;
        arg/=5;
    }
    return ans;
}

int main(void) {
    FILE *fin  = fopen("fact.in","r");
    FILE *fout = fopen("fact.out","w");
    long long ans, m, p;

    fscanf(fin,"%lld",&p);

    m   = 1LL << 32; ///Eh... ce se poate intampla?
    ans = 0;

    while(m) {
        if(czero(ans|m)<p)
            ans|=m;
        m>>=1;
    }
    if(czero(ans+1)==p)
        fprintf(fout,"%lld\n",ans+1);
    else
        fprintf(fout,"-1\n");
    return 0;
}