#include <bits/stdc++.h>
using namespace std;
const int MAXN = 20005;
int vis[MAXN], id1[MAXN], id2[MAXN], val[MAXN * 2], prime[MAXN];
int n, A, B, C, D, m, cp, cn;
unsigned g[MAXN * 2], g1[MAXN * 2], f[MAXN], sum[MAXN], ans;
unsigned S(int i, int j) {
  if (prime[j] > i) return 0;
  int cnt = g[i <= m ? id1[i] : id2[n / i]] - j + 1;
  ans += g1[i <= m ? id1[i] : id2[n / i]] - sum[j - 1];
  for (int k = j; k <= cp && prime[k] * prime[k] <= i; k++) {
    int p = prime[k], mul = p;
    for (int e = 1; i / p >= mul; mul *= p, ++e) {
      int t = S(i / mul, k + 1);
      ans += f[k] * (e + 1) + f[k] * e * t;
      cnt += t + 1;
    }
  }
  return cnt;
}
int main() {
  scanf("%d%d%d%d%d", &n, &A, &B, &C, &D);
  m = (int)sqrt(n) + 1;
  for (int i = 2; i <= m; i++)
    if (!vis[i]) {
      prime[++cp] = i;
      for (int j = i + i; j <= m; j += i) vis[j] = 1;
    }
  for (int i = 1; i <= n; i++) {
    int d = n / i, j = n / d;
    if (d <= m)
      id1[d] = ++cn;
    else
      id2[n / d] = ++cn;
    val[cn] = d;
    g[cn] = d - 1;
    i = j;
  }
  for (int i = 1; i <= cp; i++) {
    sum[i] = sum[i - 1] + 1, f[i] = 1;
    int p = prime[i];
    for (int j = 1; p * p <= val[j]; j++) {
      int t = val[j] / p;
      g[j] -= g[t <= m ? id1[t] : id2[n / t]] - i + 1;
    }
  }
  for (int i = 1; i <= cn; i++) g1[i] = g[i];
  ans = 0;
  S(n, 1);
  unsigned res = ans * D;
  for (int i = 1; i <= cn; i++) {
    long long t = val[i];
    g1[i] = t * (t + 1) / 2 - 1;
  }
  for (int i = 1; i <= cp; i++) {
    unsigned p = prime[i];
    sum[i] = sum[i - 1] + p, f[i] = p;
    for (int j = 1; p * p <= val[j]; j++) {
      int t = val[j] / p;
      g1[j] -= (g1[t <= m ? id1[t] : id2[n / t]] - sum[i - 1]) * f[i];
    }
  }
  ans = 0;
  S(n, 1);
  res += ans * C;
  for (int i = 1; i <= cn; i++) {
    long long t = val[i];
    t = t * (t + 1) / 2;
    if (t % 3 == 0)
      t = t / 3 * (2 * val[i] + 1);
    else
      t = (2 * val[i] + 1) / 3 * t;
    g1[i] = t - 1;
  }
  for (int i = 1; i <= cp; i++) {
    unsigned p = prime[i];
    sum[i] = sum[i - 1] + p * p, f[i] = p * p;
    for (int j = 1; p * p <= val[j]; j++) {
      int t = val[j] / p;
      g1[j] -= (g1[t <= m ? id1[t] : id2[n / t]] - sum[i - 1]) * f[i];
    }
  }
  ans = 0;
  S(n, 1);
  res += ans * B;
  for (int i = 1; i <= cn; i++) {
    long long t = val[i];
    t = t * (t + 1) / 2;
    g1[i] = t * t - 1;
  }
  for (int i = 1; i <= cp; i++) {
    unsigned p = prime[i];
    sum[i] = sum[i - 1] + p * p * p, f[i] = p * p * p;
    for (int j = 1; p * p <= val[j]; j++) {
      int t = val[j] / p;
      g1[j] -= (g1[t <= m ? id1[t] : id2[n / t]] - sum[i - 1]) * f[i];
    }
  }
  ans = 0;
  S(n, 1);
  res += ans * A;
  printf("%u\n", res);
  return 0;
}
