Cod sursa(job #598347)

Utilizator mavroMavrodin Bogdan-Florentin mavro Data 25 iunie 2011 15:25:52
Problema Factorial Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
// nr natural minim pt care N! are P zerouri;

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

    long int p, n = 0, n2 = 0, p2 = 0, p1 = 0, k = 1, sup;

    scanf("%ld", &p);
    if(p == 0)
    {
        printf("1");
        return 0;
    }
    while(k)
    {
        k = 0;
        n2 = 1;
        p2 = 0;
        while((p1 + p2*5+1) <= p)
        {
            k = 1;
            p2 = p2 * 5 + 1;
            n2 = n2 * 5;
        }              
        sup = n + n2 * 5;
        p1 = p1 + p2;
        if(n != 1)
            n = n + n2;  
        if(p == p1)
        {
            if(n >= sup)
            {
                printf("-1");
                return 0;
            }
            printf("%ld", n);
            return 0;
        }
    }
    return 0;
}