Pagini recente » Cod sursa (job #1355930) | Cod sursa (job #1148937) | Borderou de evaluare (job #1036502) | Cod sursa (job #2570262) | Cod sursa (job #361898)
Cod sursa(job #361898)
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
unsigned long long x[13]={5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625,1220703125},i;
unsigned long cautare(unsigned long a,unsigned long b,unsigned long s)
{
unsigned long d;
unsigned long max=-1;
unsigned long v;
while(a<=b)
{
d=(a+b)/2;
v=0;
for(i=0;x[i]<=d;i++)
{
v+=d/x[i];
}
if(v==s)
{
max=d;
b=d-1;
}
else if(v>s)
b=d-1;
else
a=d+1;
}
return max;
}
int main ()
{
ifstream x("fact.in");
ofstream y("fact.out");
unsigned long p,a,b;
x>>p;
a=0;
b=1000000000;
cout<<cautare(a,b,0);
y<<cautare(a,b,p);
x.close();
y.close();
return 0;
}