Pagini recente » Cod sursa (job #245403) | Cod sursa (job #1326321) | Cod sursa (job #973693) | Cod sursa (job #2678145) | Cod sursa (job #349652)
Cod sursa(job #349652)
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
int main ()
{
short s=0,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,nr,d;
a=0;
b=2000000000;
x>>p;
if(p==0)
{
y<<1;
x.close();
y.close();
return 0;
}
do
{
c=(a+b)/2;
d=c;
while(c%5==0)
{
for(i=12;i>=0;i--)
{
if(c%v[i]==0)
{
c=c/v[i];
nr+=i+1;
}
}
}
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;
}