Cod sursa(job #1898633)
| Utilizator | Data | 2 martie 2017 10:14:47 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.83 kb |
#include <fstream>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int Check (int n)
{
int i, k=0;
while (n/5>0)
{
k=k+n/5;
n=n/5;
}
return k;
}
int main()
{
int p, Left=1, Right=1000000000, Mid, nr=-1, r;
fin>>p;
while (Left<=Right)
{
Mid=(Left+Right)/2;
if (Check(Mid)<p)
Left=Mid+1;
else
if (Check(Mid)>p)
Right=Mid-1;
else
{
nr=Mid;
break;
}
}
if (nr==-1)
fout<<nr;
else
if (nr>4)
{
r=nr%5;
nr=nr-r;
fout<<nr;
}
else
{
nr=1;
fout<<nr;
}
return 0;
}
