Pagini recente » Cod sursa (job #798491) | Cod sursa (job #461739) | Cod sursa (job #431963) | Cod sursa (job #1908119) | Cod sursa (job #1080188)
//
// main.c
// fact2
//
// Created by Alexandru Bâgu on 1/12/14.
// Copyright (c) 2014 Alexandru Bâgu. All rights reserved.
//
#include <stdio.h>
int powOf5(int n)
{
int p = 0;
if(n % 5 == 0 && n > 0 )
return p = 1 + powOf5(n / 5);
return p;
}
int fives(int n)
{
int k = 0;
while(n > 4) k += powOf5(n--);
return k;
}
int isValid(int n, int p)
{
int k = fives(n);
if(p > k) return 1;
if(p == k) return 0;
return -1;
}
int main(int argc, const char * argv[])
{
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
int p;
scanf("%d", &p);
int max = 5 * p;
int k = 1 << 30, i = 0;
while(k > 0)
{
if(k + i <= max)
if(isValid(k + i, p) >= 0)
i += k;
k >>= 1;
}
int pk = fives(i);
while(pk == fives(i - 1) && i > 0)
i--;
if(i == 0) i = 1;
printf("%d", i);
return 0;
}