Pagini recente » Cod sursa (job #700066) | Cod sursa (job #1630731) | Cod sursa (job #1805247) | Cod sursa (job #1844714) | Cod sursa (job #2016017)
#include <stdio.h>
#define NMAX 1000000000000000000
long long legendre (long long n, long long p ) {
long long cp, rez ;
cp = p ;
rez = 0 ;
while (cp <= n ) {
rez += (n / cp ) ;
cp = cp * p ;
}
return rez ;
}
int main() {
FILE *fin, *fout ;
fin = fopen ("fact.in", "r" ) ;
fout = fopen ("fact.out", "w" ) ;
long long p, res, st, dr, pivot, last ;
long long n ;
fscanf (fin, "%lld", &p ) ;
st = 1 ;
dr = NMAX ;
last = NMAX ;
while (st <= dr ) {
pivot = ( st + dr ) / 2 ;
res = legendre (pivot, 5 ) ;
if (res < p ) {
st = pivot + 1;
}
else {
dr = pivot - 1 ;
}
if (res == p && pivot < last )
last = pivot ;
}
if (last != NMAX ) {
fprintf (fout, "%lld", last ) ;
}
else {
fprintf (fout, "-1" ) ;
}
return 0;
}