Pagini recente » Cod sursa (job #2234445) | Cod sursa (job #320237) | Cod sursa (job #158912) | Cod sursa (job #1619180) | Cod sursa (job #349796)
Cod sursa(job #349796)
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
int main ()
{
short s=0;
unsigned long i;
ifstream x("fact.in");
ofstream y("fact.out");
unsigned long v[13];
for(i=0;i<13;i++)
v[i]=pow(5,i+1);
unsigned long p,a,b,c,d;
unsigned long long p2,nr;
a=0;
b=2000000000;
x>>p;
if(p==0)
{
y<<1;
x.close();
y.close();
return 0;
}
do
{
c=(a+b)/2;
d=c;
p=1;
for(i=2;i<=c;i++)
{
p2*=i;
}
for(i=0;i<=13,p2%v[i]==0;i++)
{
nr+=p2/v[i];
}
if(nr==p)
{
s=1;
y<<b;
}
if(nr>p)
{
b=d-1;
}
else
{
a=d+1;
}
}
while(s!=1);
if(s==0)
y<<-1;
x.close();
y.close();
return 0;
}