Pagini recente » Istoria paginii utilizator/escapeescape | Monitorul de evaluare | Istoria paginii runda/meow1 | Cod sursa (job #1545843) | Cod sursa (job #188825)
Cod sursa(job #188825)
/*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.
Se stie ca N! = 1 * 2 * 3 * .... * (N - 1) * N.
Exemplu : 0 --> 1
2 --> 10
10 --> 45*/
#include<stdio.h>
#include<stdlib.h>
const long long MAX=1000000000LL;
long long n;
long long factor(long long m){
if (0 == m)
return 1;
else
return (m * factor(m-1));
}
long long ten(long long m){
long long i=0;
while(m>=5){
if(m%5==0)
i++;
m/=5;
}
return i;
}
long fact(long long a,long long b,long long n){
long long c=(a+b)/2;
if(ten(factor(c))==n)
return c;
else
if(a<b)
if(ten(factor(c))<n)
fact(c+1,b,n);
else
fact(a,c-1,n);
}
int main(){
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%lld",&n);
long long a=0LL;long long b=MAX;
long rez=fact(a,b,n);
if(rez)
printf("%ld",rez);
else(printf("%d",-1));
return 0;
}