Pagini recente » Cod sursa (job #1103268) | Cod sursa (job #401800) | Cod sursa (job #3188510) | Cod sursa (job #421101) | Cod sursa (job #21759)
Cod sursa(job #21759)
#include<fstream.h>
#include<math.h>
unsigned long fo(unsigned long k) {
if(k/5==0) return 0;
else return k/5+fo(k/5);
}
long gg(unsigned long p) {
if(p==0) return 1;
if(p==5) return -1;
if(p%25==0) return -1;
if(p==5) return -1;
if(p%5!=0 && (p%30)%5==(p%30)/5-1) return -1;
unsigned long c,n=0,m=5*100000000;
while(n<=m) {
c=(m+n)/2-((m+n)/2)%5;
if(fo(c)<p) n=c+5;
if(fo(c)>p) m=c-5;
if(fo(c)==p) n=m+5;
}
return c;
}
main() {
unsigned long p;
ifstream f("fact.in");
ofstream g("fact.out");
f>>p;
g<<gg(p);
return 0;
}