Pagini recente » Istoria paginii runda/aasfa | Cod sursa (job #1736401) | Cod sursa (job #1830852) | Cod sursa (job #1390403) | Cod sursa (job #1276036)
#include <stdio.h>
#define inf 100000000;
int n, sum, st, dr, mij;
FILE *fin, *fout;
int main()
{
int pt[15];
pt[0] = 1;
for(int i =1; i< 15; i++) pt[i] = pt[i-1]*5;
fin = fopen("fact.in", "r");
fout = fopen("fact.out", "w");
fscanf(fin, "%d", &n);
if(n == 0) fprintf(fout, "1\n");
else
{
st = 1, dr = inf;
mij = (st+dr)/2;
for(;;mij = (dr+st)/2)
{
sum = 0;
for(int i = 1;;i++)
{
if(pt[i] >= mij) break;
sum+=mij/pt[i];
}
if(sum == n && mij%5 == 0) break;
if(sum >= n) dr = mij;
if(sum < n) st = mij;
}
fprintf(fout, "%d\n", mij);
}
fclose(fin);
fclose(fout);
return 0;
}