Cod sursa(job #1980336)
| Utilizator | Data | 12 mai 2017 21:18:08 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;
int nr_zero(int n)// nr de zerouri de la finalul lui n!
{
int nr=0, k=5;
while(k<=n)
{
nr+=n/k;
k*=5;
}
return nr;
}
int main()
{
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
fin>>p;
if(p==0)
fout<<1;
else
{
int st=1,dr=p*5,ans=0;
while(st<=dr)
{
int mij=(st+dr)/2;
if(nr_zero(mij)<=p)
{
ans=mij;
st=mij+1;
}
else
dr=mij-1;
}
if(nr_zero(ans)==p)
fout<<ans-ans%5;
else
fout<<-1;
}
return 0;
}
