Pagini recente » Cod sursa (job #1748589) | Cod sursa (job #1703436) | Cod sursa (job #1146154) | Cod sursa (job #2711799) | Cod sursa (job #361633)
Cod sursa(job #361633)
#include<iostream>
#include<fstream>
#include<vector>
#include<math.h>
using namespace std;
unsigned long long resolve(unsigned long long c)
{
unsigned int kmax=static_cast<int>(log10(c)/log10(5)),k;
unsigned long z=0;
for(k=1;k<=kmax;k++)
z+=static_cast<int>(c/pow(5,k));
return z;
}
unsigned long long cautare(unsigned long long a,unsigned long long b,unsigned long s)
{
unsigned long long d;
unsigned long v;
while(a<=b)
{
d=(a+b)/2;
v=resolve(d);
if(v==s)
return d;
else if(d>s)
b=d-1;
else
a=d+1;
}
return -1;
}
int main ()
{
ifstream x("factorial.in");
ofstream y("factorial.out");
unsigned long long p,a,b;
x>>p;
a=0;
b=400000000;
y<<cautare(a,b,p);
x.close();
y.close();
return 0;
}