Cod sursa(job #1691836)
| Utilizator | Data | 19 aprilie 2016 15:54:49 | |
|---|---|---|---|
| Problema | Factorial | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int nr0(int x)
{
int nrd0=0,pi=5;
while(pi<=x){
nrd0+=x/pi;
pi*=5;}
return nrd0;
}
int s,d,n,p;
int bs(int s,int d,int x)
{
int m;
while(s<=d)
{
m=s+(d-s)/2;
if(nr0(m)==p)
if(m==s) return m;
else if(nr0(m-1)!=p) return m;
else d = m - 1;
else if(nr0(m)>p) d = m - 1;
else s = m + 1;
}
return -1;
}
int main()
{
f>>p;
if(p==0)g<<1;
else
g<<bs(1,100000000,p);
return 0;
}
