Pagini recente » Cod sursa (job #1697841) | Cod sursa (job #2339936) | Cod sursa (job #2108508) | Cod sursa (job #1114372) | Cod sursa (job #2005204)
#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 ;
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 ;
}
fprintf (fout, "%lld", last ) ;
return 0;
}