Pagini recente » Cod sursa (job #194576) | Cod sursa (job #1187042) | Cod sursa (job #2263205) | Cod sursa (job #1583367) | Cod sursa (job #2083150)
#include<fstream>
#include <iostream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int dr=2147483647;
int functie(int x)
{
int nr=0,n=5;
while(x/n!=0){
nr=nr+x/n;
n=n*5;
}//calculam cate zerouri are numarul n!
return nr;
}
int main()
{
int p,st,m;
f>>p;
st=0;
m=(st+dr)/2;
while(functie(m)!=p && st<=dr)
{
m=(st+dr)/2;
if(functie(m)>p)dr=m-1;
else st=m+1;// daca are prea multe , mergem la un numar mai mic , daca nu , la unul mai mare ( cautare binara )
}
while(functie(m)==functie(m-1))
m--;// cu toate ca mai multe numere au p zerouri , il vrem pe cel mai mic
if(functie(m)==p)g<<m;
else g<<-1;// daca nu il gasit , cout <<-1;
return 0;
}