Pagini recente » Cod sursa (job #450997) | Cod sursa (job #2937348) | Cod sursa (job #3207370) | Cod sursa (job #432681) | Cod sursa (job #754453)
Cod sursa(job #754453)
//Se da un numar intreg P. Sa se gaseasca cel mai mic numar natural strict pozitiv N pentru care N! are exact P cifre de 0 la sfarsit.
#include <cstdio>
#include <stdlib.h>
long long binary(long long a, long long b,long long n)
{
long long c = (a+b)/2;
long long sum = 0;
long long aux = c;
while (aux > 0)
{
aux /= 5;
sum += aux;
}
if ((sum != n) && (a>=b))
return -1;
if (sum < n)
return binary((c+1),b,n);
if (sum > n)
return binary(a,c,n);
//cauta minimul
while (sum == n)
{
c--;
aux = c;
sum = 0;
while (aux > 0)
{
aux /= 5;
sum += aux;
}
}
return c+1;
}
int main()
{
FILE *f = fopen("fact.in","r");
FILE *g = fopen("fact.out","w");
long long n;
fscanf(f,"%lld",&n);
//cautare binara a=1 b=10000
if (n==0)
fprintf(g,"1");
else
fprintf(g,"%lld",binary(1,5000000000,n));
/*int sum = 0;
int x = 0;
while (sum < n)
{
x += 5;
int plm = x;
int div = 0;
while (plm % 5 == 0)
{
div ++;
plm /= 5;
}
sum+= div;
}
if (x==0) x = 1;
fprintf(g,"%ld",x);*/
}