1. def solve(n):
  2. if n <= 3:
  3. return 1 << n
  4. ans = 0
  5. L = n//3
  6. for mask in range(1 << L):
  7. ar = [1]*(n+1)
  8. for i in range(L):
  9. if ((mask >> i) & 1) == 0:
  10. ar[i+1] = 0
  11. continue
  12. for j in range(2*(i+1), L+1, i+1):
  13. if ((mask >> (j-1)) & 1) == 0:
  14. continue
  15. ar[j] = max(ar[j], ar[i+1] + 1)
  16. if max(ar) > 2:
  17. continue
  18. for i in range(1, L+1):
  19. if ar[i] == 2:
  20. for x in range(i, n+1, i):
  21. if x > L:
  22. ar[x] = -1
  23. for i in range(1, L+1):
  24. if ar[i] == 1:
  25. for x in range(i, n+1, i):
  26. if x > L and 2*x <= n and ar[x] != -1 and ar[2*x] != -1:
  27. ar[x] = 2
  28. ar[2*x] = 2
  29. one, two = 0, 0
  30. for i in range(L+1, n+1):
  31. one += ar[i] == 1
  32. two += ar[i] == 2
  33. ans += pow(2, one) * pow(3, two//2)
  34. return ans
  35.  
  36. n = int(input())
  37. print(solve(n))