Cod sursa(job #2218336)
| Utilizator | Data | 4 iulie 2018 11:55:40 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long zero(int x)
{
long long s=0,p;
p=5;
while (p<=x)
{
s=s+x/p;
p=p*5;
}
return s;
}
long long cautbin(int p)
{
long long dr,step,j;
dr=5*p;
step=1;
while (step<dr)
{
step<<=1;
}
for ( j=0;step;step>>=1)
{
if (j+step<=dr&&zero(j+step)<p)
{
j+=step;
}
}
if (zero(j+1)!=p)
{
return -1;
}
return j+1;
}
int main()
{
long long p;
f>>p;
g<<cautbin(p);
return 0;
}
