Cod sursa(job #1702791)
Utilizator | Moise Andrei Moise_Andrei | Data | 15 mai 2016 16:01:13 |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int aflare(int x)
{
int put=5,cnt=0;
while(x>=put)
{
cnt+=x/put;
put=put*5;
}
return cnt;
}
int caut(int n)
{
int st=1;
int dr=100000000;
int ans=1;
while(st<=dr)
{
int mij=(st+dr)/2;
if(aflare(mij)<n)
st=mij+1;
else if(aflare(mij)>=n)
dr=mij-1;
if(aflare(mij)==n)
ans=mij;
}
return ans;
}
int main()
{
int p;
cin>>p;
cout<<caut(p);
return 0;
}