Cod sursa(job #1768611)

Utilizator bogdi1bogdan bancuta bogdi1 Data 1 octombrie 2016 11:45:29
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <cstdio>

using namespace std;
int put5[15];
long long nr0(int n)
{
    long long r=n/5;
    int i;
    for(i=1; i<=12 && n>put5[i]; i++)
        r+=i-1;
    return r;
}
int main()
{   freopen("fact.in", "r",stdin);
    freopen("fact.out", "w",stdout);
    int p,i,pas;
    scanf("%d", &p);
    put5[0]=1;
    for(i=1; i<=12; i++)
        put5[i]=5*put5[i-1];
    i=0;
    pas=1<<30;
    while(pas!=0){
        if(i+pas<=2147483648 && nr0(i+pas)<p)
            i+=pas;
        pas/=2;
    }
    if(nr0(i)==p)
        printf("%d", i+1);
    else
        printf("-1");
    return 0;
}