Cod sursa(job #1803913)
| Utilizator | Data | 12 noiembrie 2016 00:08:18 | |
|---|---|---|---|
| Problema | Factorial | Scor | 10 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <stdio.h>
#include <stdlib.h>
inline long long int put5(long long int n)
{
long long int s=0;
while(n>0)
{
n=n/5;
s+=n;
}
return s;
}
int main()
{
long long int n,i,p,k;
FILE*fi,*fo;
fi=fopen("fact.in","r");
fo=fopen("fact.out","w");
fscanf(fi,"%lld",&n);
i<<28;
p=0;
while(i>0)
{
if(put5(p+i)<=n)
{
p+=i;
}
i/=2;
}
while(put5(p)>=n)
p--;
if(put5(p+1)==n)
fprintf(fo,"%lld",p+1);
else fprintf(fo,"-1");
fclose(fi);
fclose(fo);
return 0;
}
