Cod sursa(job #2080859)

Utilizator ruxi.icleanuRuxandra Icleanu ruxi.icleanu Data 3 decembrie 2017 16:26:05
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

#define MAXN 400000020

inline int nr_cf0(int nr) {
    int a=5, exp=0;
    while(a<=nr) {
        exp+=nr/a;
        a*=5;
    }
    return exp;
}

int c_b(int p) {
    int poz, pas;
    poz=0;
    for(pas=MAXN/2; pas>=1; pas/=2)
        while(poz+pas<MAXN && nr_cf0(poz+pas)<=p)
            poz+=pas;
    if(nr_cf0(poz)!=p)
        poz=-1;
    else {
        while(nr_cf0(poz)==p && poz>0)
            poz--;
        poz++;
    }
    return poz;
}

int main()
{
    int p;
    FILE *fi, *fo;
    fi = fopen("fact.in", "r");
    fo = fopen("fact.out", "w");
    fscanf(fi, "%d", &p);
    fprintf(fo, "%d", c_b(p));
    fclose(fi);
    fclose(fo);
    return 0;
}