Pagini recente » Cod sursa (job #634482) | Cod sursa (job #3256773) | Cod sursa (job #2375558) | Monitorul de evaluare | Cod sursa (job #964816)
Cod sursa(job #964816)
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <string>
using namespace std;
int p;
FILE *f;
FILE *g;
int nr;
int isnumber(int n)
{
nr = 0;
while (n / 5 != 0)
{
nr += n / 5;
n = n / 5;
}
if ( nr == p )
return 1;
return 0;
}
int gasit;
void cauta( int li, int ls )
{
int m = (li + ls) / 2;
if ( isnumber(m) )
{
gasit = m;
while (isnumber(gasit-1))
{
gasit--;
}
fprintf(g, "%d", gasit);
}
else
{
if (li < ls)
{
if (p < nr)
cauta(li, m-1);
else
cauta(m+1, ls);
}
else
fprintf(g, "%d", -1);
}
}
int main()
{
f = fopen("fact.in", "r"); g = fopen("fact.out", "w");
fscanf(f, "%d", &p);
fclose(f);
cauta(1, 10000000000);
fclose(g);
return 0;
}