Pagini recente » Cod sursa (job #2088022) | Cod sursa (job #1347335) | Cod sursa (job #754439) | Cod sursa (job #2053317) | Cod sursa (job #2619497)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
//functie care verifica daca numarul are n zero-uri
bool verificare(int x,int n)
{
int temp=x,k=0,y=5;
while (y<=temp)
{
k+=temp/y;
y=y*5;
}
return (k>=n);
}
//functie care returneaza numarul cel mai mic, al carui factorial are n zero-uri
int returneazaNumarFactorial(int n)
{
int inceput=0,sfarsit=5*n;
//cautare binara
while(inceput<sfarsit)
{
int mijloc=(inceput+sfarsit)/2;
//verificam daca mijlocul contine n zero-uri
if(verificare(mijloc,n))
sfarsit=mijloc;
else
inceput=mijloc+1;
}
return inceput;
}
int main()
{
int p,x;
fin>>p;
if(p==0)
fout<<1;
else
if(p==1)
fout<<5;
else
{
fout<<returneazaNumarFactorial(p);
}
return 0;
}