Cod sursa(job #1242907)

Utilizator SmarandaMaria Pandele Smaranda Data 15 octombrie 2014 10:50:48
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>

using namespace std;

int m (int a) {
    int b = 5, s = 0;
    while (a / b) {
        s = s + a / b;
        b = b * 5;
    }
    return s;
}

int main () {
    int n, p, step, c;

    freopen ("fact.in", "r", stdin);
    freopen ("fact.out", "w", stdout);

    scanf ("%d", &p);
    if (p == 0) {
        printf ("0\n");
        return 0;
    }
    step = 2000000000;
    for (n = 0; step; step >>= 1) {
        if (m (n + step) <  p)
            n = n + step;
    }
    n ++;
    while (n % 5) n ++;
    if (m (n) == p)
        printf ("%d\n", n);
    else printf ("-1\n");
    return 0;
}