Pagini recente » Cod sursa (job #2588443) | Cod sursa (job #708173) | Cod sursa (job #2931126) | Cod sursa (job #905117) | Cod sursa (job #634773)
Cod sursa(job #634773)
#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) {
dreapta = m-1;
} else if(P > zero) {
stanga = m+1;
} else {
return m;
}
}
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;
}