Cod sursa(job #1458515)
| Utilizator | Data | 7 iulie 2015 18:05:34 | |
|---|---|---|---|
| Problema | Factorial | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <fstream>
using namespace std;
ifstream in ("fact.in");
ofstream out ("fact.out");
int p;
int put_cinci (int p)
{
int i=0;
while (p&&p%5==0)
{
i++;
p/=5;
}
return i;
}
int fact (int p)
{
int nr_cinci=0;
for (int i=1;i<=p;i++)
{
if (i%5==0)
{
nr_cinci+=put_cinci(i);
}
}
return nr_cinci;
}
int main()
{
in>>p;
int l,g,m;
l=0;
g=5*p;
while (l<g)
{
m=(l+g)/2;
if (fact(m)>=p)
{
g=m-1;
}
else if (fact(m)<p)
{
l=m+1;
}
}
if (l>0)
out<<l;
else out<<1;
return 0;
}
