Pagini recente » Cod sursa (job #2257014) | Monitorul de evaluare | Cod sursa (job #2958936) | Cod sursa (job #3158367) | Cod sursa (job #3032670)
#include<fstream>
#include<bits/stdc++.h>
using namespace std;
int main(){
ifstream in("fact.in");
ofstream out("fact.out");
long long int p,t=1,l=0;
in>>p;
long long int n=5*(p+1);
while(t*2 <= n){
t*=2;
}
for(long long int i=t;i>0;i/=2){
long long int c=0;
if(n>i){
long long int k=1;
while(k*5 <= n){
k*=5;
}
for(long long int j=k;j>=5;j/=5){
c+=(n-i)/j;
}
if(c>=p){
n-=i;
}
}
}
long long int k=1;
while(k*5 <= n){
k*=5;
}
for(long long int j=k;j>=5;j/=5){
l+=n/j;
}
if(p==0){
out<<"0";
}else{
if(l==p){
out<<n;
}else{
out<<"-1";
}
}
}