Cod sursa(job #1725989)
Utilizator | Data | 6 iulie 2016 22:00:28 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <cstdio>
using namespace std;
inline int nz( int n )
{
int k=0;
while( n>=5 )
k+=(n/5), n/=5;
return k;
}
int main()
{
freopen( "fact.in", "r", stdin );
freopen( "fact.out", "w", stdout );
int p, k=0, i;
scanf( "%d", &p );
for( i=(1<<30);i>=1;i/=2 )
if( nz(k+i)<p )
k+=i;
if( nz(k+1)!=p )
k=-2;
printf( "%d", k+1 );
return 0;
}