Pagini recente » Cod sursa (job #1380289) | Cod sursa (job #51575) | Cod sursa (job #1983628) | Cod sursa (job #435003) | Cod sursa (job #1881323)
#include<fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int st, dr, mid, P;
int check( int x ){
int nr = 0;
int sol = 0;
for( int i = 1; i <= 30; i++ ){
nr += x / (1<<i);
}
int p = 5;
for( int i = 1; i <= 13; i++ ){
sol += x / p;
p *= 5;
}
return min( sol, nr );
}
int main(){
fin >> P;
st = 1;
dr = 2000000000;
while( st <= dr ){
mid = ( st + dr ) / 2;
if( check( mid ) < P ){
st = mid + 1;
}else{
dr = mid - 1;
}
}
if( check(st) == P ){
fout << st;
}else{
fout << -1;
}
}