Pagini recente » Cod sursa (job #1088929) | Cod sursa (job #1611184) | Cod sursa (job #1818681) | Cod sursa (job #1080198) | Cod sursa (job #395643)
Cod sursa(job #395643)
#include <fstream>
using namespace std;
ifstream fi("fact.in");
ofstream fo("fact.out");
long long a[20]={0, 25}, b[20]={1};
int p1(int n){
int p=0, i;
long nr=5;
for(i=1;i<=16;i++)
if(nr<=n){
p+=n/nr;
nr*=5;
}
else break;
return p;
}
int main(){
int p, i=1, nr=0;
fi>>p;
if(p==0){
fo<<1;
return 0;
}
while(p>=b[i-1]){
if(i>1)
a[i]=a[i-1]*5;
b[i]=b[i-1]*5+1;
if(b[i]==p){
fo<<a[i];
return 0;
}
i++;
}
i=a[i-2]+1;
while(p!=p1(i)){
if(p>p1(i))
i+=p-p1(i);
if(p<p1(i))
i-=p1(i)-p;
nr++;
if(nr>=p/2){
fo<<-1;
return 0;
}
}
fo<<i;
}