Cod sursa(job #806071)

Utilizator mihai_tMihai Teletin mihai_t Data 1 noiembrie 2012 19:41:13
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <iostream>
using namespace std;
long long p;
void cit()
{
    ifstream f;
	f.open("fact.in");
	f>>p;
	f.close();
}
void af(long long n)
{
    ofstream g;
    g.open("fact.out");
    g<<n;
    g.close();
}
int dscp(long long n)
{
    int c=0;
    while (n%5==0)
    {
        n/=5;
        c++;
    }
    return c;
}
long long f(long long n)
{
    long long rez=0;
    while (n!=0)
    {
        rez+=n/5;
        n/=5;
    }
    return rez;
}
long long c;
long long cb(long long a,long long b)
{
    if (a>b) return -1;
    c=(a+b)/2;
    if (f(c)==p) return c;
    if (f(c)<p) return cb(c+1,b);
    if(f(c)>p) return cb(a,c-1);
}
long long imb(long long n,long long t)
{
    while (f(n)==t) n--;
    return n+1;
}
int main()
{
    cit();
    if (p==0) af(1);
    else
    {
        long long n=cb(1,1000000000000);
        if (n!=-1) n=imb(n,f(n));
        af(n);
    }
    return 0;
}