Pagini recente » Cod sursa (job #2636150) | Cod sursa (job #1579025) | Cod sursa (job #2049476) | Cod sursa (job #858713) | Cod sursa (job #1027229)
#include <cstdio>
#include <iostream>
using namespace std;
long long p10fact( long long nr ) {
long long p = 5, put = 0;
while( p <= nr ) {
put += ( nr / p );
p *= 5;
}
return put;
}
int main () {
freopen( "fact.in" , "r", stdin );
freopen( "fact.out", "w", stdout );
long long p;
long long pas, poz, minim = 99999999999999999, k;
scanf( "%I64d", &p );
poz = 0;
pas = 1;
pas <<= 62;
while( pas ) {
k = p10fact( poz + pas );
if( k <= p ) {
poz += pas;
if( k == p && poz < minim )
minim = poz;
}
pas >>= 1;
}
while( p10fact( minim - 1 ) == p && minim >= 2 )
--minim;
if( p10fact( poz ) == p )
printf( "%I64d\n", minim );
else
printf( "-1\n" );
// cout<<p10fact( 17 );
return 0;
}