Cod sursa(job #1807263)

Utilizator sebiinfosimon sebastian sebiinfo Data 16 noiembrie 2016 11:44:31
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>

using namespace std;
long long v5(long long n)
{
    long long s=0;
    while(n>0)
    {
        s+=n/5;
        n/=5;
    }
    return s;
}
int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    long long n,stanga=1,dreapta=1000000000000;
    int p;
    scanf("%d",&p);
    while(stanga<dreapta)
    {
        if(v5((stanga+dreapta)>>1)<p)
        {
            stanga=(stanga+dreapta)>>1;
        }
        else
        if(v5((stanga+dreapta)>>1)>p)
        {
            dreapta=(stanga+dreapta)>>1;
        }
        else
        if(v5((stanga+dreapta)>>1)==p)
        {
            break;
        }
    }
    if(p==0)
        printf("1");
    else
    printf("%d",(stanga+dreapta)/2-(stanga+dreapta)/2%5);
    return 0;
}