Pagini recente » Cod sursa (job #158095) | Cod sursa (job #1713392) | Cod sursa (job #2779660) | Cod sursa (job #2542769) | Cod sursa (job #1694275)
#include <fstream>
using namespace std;
int trailingZeros(int n){
int cnt = 0;
while(n!=0){
n = n/5;
cnt += n;
}
return cnt;
}
int main(){
int p;
ifstream fin("fact.in");
fin>>p;
ofstream fout("fact.out");
if(p==0){
fout<<1;
return 0;
}
if(p<5){
fout<<5*p;
return 0;
}
int a = 0; int b = 5*p;
int mid;
int midZeros;
while(a!=b-1){
mid = (a+b)/2;
midZeros = trailingZeros(mid);
if(midZeros>p){
b=mid;
continue;
}
if(midZeros<p){
a=mid;
continue;
}
break;
}
if(midZeros==p) fout<<mid-mid%5;
else fout<<-1;
return 0;
}