Pagini recente » Cod sursa (job #1189187) | Cod sursa (job #2108103) | Cod sursa (job #1743768) | Cod sursa (job #660032) | Cod sursa (job #941037)
Cod sursa(job #941037)
//problema facauta la plictiseala
//n-aveam altceva mai bun de facut
#include<fstream>
#include<utility>
using namespace std;
int p;
int Answer;
ifstream f("fact.in");
ofstream g("fact.out");
int numb_power5(int n);
int binary_search(int left,int right);
int main ( void )
{
f>>p;
if( p == 0)
g<<1;
else
{
Answer=binary_search(1,2000000000);
if( Answer == 0 )
g<<-1;
else
{
while( Answer % 5 )
--Answer;
g<<Answer;
}
}
f.close();
g.close();
return 0;
}
int binary_search ( int left , int right )
{
while( left <= right )
{
int mid=(left+right)>>1;
int number=numb_power5( mid );
if( number == p )
return mid;
else
if( number <= p )
left=mid-1;
else
right=mid+1;
}
}
int numb_power5( int n)
{
int cnt(0);
int x(1);
while( x <= n )
{
x*=5;
cnt+=n/x;
}
return cnt;
}