Pagini recente » Cod sursa (job #1213392) | Cod sursa (job #2803305) | Cod sursa (job #3265974) | Cod sursa (job #2244455) | Cod sursa (job #349934)
Cod sursa(job #349934)
// @author Mircea Dima
// O(log2(P) * log5(n))
#include <cstdio>
#include <cstdlib>
inline unsigned int numOf5s(unsigned int n)
{
unsigned int s = 0;
while(n) s += n/5, n/=5;
return s;
}
int main()
{
unsigned int n;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d\n", &n);
unsigned int i, cnt;
for(i = (1<<31), cnt=(1<<31); cnt; cnt>>=1)
if(i - cnt >= 0)
if(numOf5s(i-cnt) >= n) i-= cnt;
if(n == 0){ printf("1\n"); return 0;}
if(numOf5s(i) != n) {printf("-1\n"); return 0;}
printf("%u\n", i);
//system("pause");
return 0;
}