Cod sursa(job #1244048)

Utilizator ConstantinPetroviciPetrovici Constantin ConstantinPetrovici Data 16 octombrie 2014 18:44:38
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <cstdio>

using namespace std;

long long p;
long long nr (long long x)
{
    long long s=0;
    for ( int i = 5 ; i <= x ; ++i )
        s=s+x/i;
    return s;
}

int main()
{
    freopen ("fact.in" , "r" , stdin );
    freopen ("fact.out" , "w" , stdout );
    scanf ("%lld" , &p );
    long long st=1,sol=0;
    long long dr=1000007;
    while (st<=dr)
    {
        long long mij=(st+dr)/2;
        long long k=nr(mij);
        if (k>p)
            dr=mij-1;
        else if (k<p)st=mij+1;
        else if (k==p){
                        sol=mij;
                        break;
                      }
    }
    while (sol>=0 and sol%5!=0)
        sol--;
    if (sol==0)
        sol=1;
    printf ("%lld" , sol );
    return 0 ;
}