Pagini recente » Cod sursa (job #3002364) | Cod sursa (job #1409259) | Cod sursa (job #1088030) | Cod sursa (job #2002717) | Cod sursa (job #52452)
Cod sursa(job #52452)
#include<stdio.h>
long long N,P;
void citire ()
{
FILE *in = fopen ("fact.in", "rt");
fscanf (in,"%lld", &P);
fclose(in);
}
long long f(int c)
{
long long x=5;
long long K=0;
while(c/x>=1)
{
K+=c/x;
x*=5;
}
return K;
}
void calcul ()
{
if(P==0)
N=1;
else
{
long long a=0, b=1000000000;
long long c=(a+b)/2;
long long fc=f(c);
while(fc!=P && a!=b)
{
if(fc>P)
{
b=c-1;
c=(a+b)/2;
fc=f(c);
}
else
{
a=c+1;
c=(a+b)/2;
fc=f(c);
}
}
if(a==b)
N=-1;
else
{
N=c;
while(N%5!=0)
N--;
}
}
}
void afisare()
{
FILE *out = fopen ("fact.out", "wt");
fprintf(out, "%lld", N);
fclose(out);
}
int main ()
{
citire();
calcul();
afisare();
return 0;
}