#include <iostream> using namespace std; int Primes[2000]; int Len; void GetPrime() { bool flag[2001] = { false }; for (int i = 2; i < 46; ++i) if (!flag[i]) for (int j = i + i; j < 2001; j += i) flag[j] = true; for (int i = 2; i < 2001; ++i) if (!flag[i]) Primes[Len++] = i; } int main() { int n; GetPrime(); while (scanf("%d",&n) != EOF) { int buf[1000] = {1},len = 1; int dimup,dim1,dim2; for (int i = 0; i < Len; ++i) { dimup = dim1 = dim2 = 0; for (int j = Primes[i]; j <= 2*n; j *= Primes[i]) dimup += (2*n) / j; for (int j = Primes[i]; j <= n; j *= Primes[i]) dim1 += n / j; for (int j = Primes[i]; j <= n + 1; j *= Primes[i]) dim2 += (n+1) / j; dimup -= (dim1 + dim2); while (dimup--) { int carry = 0,iTemp; for (int j = 0; j < len; ++j) { iTemp = Primes[i] * buf[j] + carry; carry = iTemp / 10000; buf[j] = iTemp % 10000; } if (carry) buf[len++] = carry; } } printf("%d",buf[len-1]); for (int j = len - 2; j >= 0; --j) printf("%04d",buf[j]); printf("/n"); } return 0; }