Pagini recente » Cod sursa (job #2738502) | Cod sursa (job #1387813) | Cod sursa (job #229643) | Cod sursa (job #2539915) | Cod sursa (job #754450)
Cod sursa(job #754450)
//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>
int binary(int a, int b,long int n)
{
int c = (a+b)/2;
long int sum = 0;
int 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);*/
}