Pagini recente » Cod sursa (job #1580405) | Cod sursa (job #996386) | Cod sursa (job #753421) | Cod sursa (job #385311) | Cod sursa (job #634779)
Cod sursa(job #634779)
#include<iostream>
#include<fstream>
using namespace std;
//cate zerouri are n!
int nr_zero(int n)
{
int i;
int s=0;
for(i=5;i<=n;i*=5) {
s += n/i;
}
return s;
}
int cautare (int P, int stanga ,int dreapta)
{
if(stanga <= dreapta) {
int m = (stanga+dreapta)/2;
int zero = nr_zero(m);
if(P < zero) {
return cautare(P, stanga ,m-1);
} else if(P > zero) {
return cautare(P, m+1, dreapta);
} else {
return m-m%5;
}
}
return 0;
}
int main()
{
int P,c,n;
ifstream f("fact.in");
ofstream g("fact.out");
f>>P;
n = cautare(P,1,1000000000);
if(n == 0) {
if(P == 0) {
g << 1;
} else {
g << -1;
}
} else {
g<<n;
}
f.close();
g.close();
return 0;
}