Cod sursa(job #274121)

Utilizator EllsolanMircea Iordache Ellsolan Data 9 martie 2009 14:22:39
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#include <cmath>
using namespace std;

long double b=log10(5);
long long zero(long long n)
{
    long long i,s=0;
    long double a,x;
    a=log10(n);
    x=a/b;
    for (i=1;i<=x;i++)
    s+=n/pow(5.0,(int)i);
    return s;
}
int main()
{
    long long p,i,j,mid,f,ok=0,g;
    ifstream in ("fact.in");
    ofstream out("fact.out");
    in>>p;
    i=0; j=pow(5.0,10);
    while ((i<=j)&&!ok)
    {
	mid=(i+j)/2;
	g=f;
	f=zero(mid);
	if (f<p) i=mid+1;
	else j=mid-1;
	if (f!=p&&g==p) ok=1;
    }
    if (ok) out<<j+1;
    else out<<-1;
    return 0;
}