func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 4000010, maxm = 2010;   long long s[maxn], f[maxn], P[maxm], Q[maxm];   int a, b, c, p[maxm], vis[maxm], mu[maxm];   void inc(long long &a, long long b) {     a += b;     if (a > (1ll << 30)) a -= (1ll << 30);   }   int main() {     scanf( %d%d%d , &a, &b, &c);     mu[1] = 1;     for (int i = 2; i <= c; i++) {       if (!vis[i]) p[++p[0]] = i, mu[i] = -1;       for (int j = 1; j <= p[0] && i * p[j] <= c; j++) {         vis[i * p[j]] = 1;         if (i % p[j] == 0) {           mu[i * p[j]] = 0;           break;         } else           mu[i * p[j]] = -mu[i];       }     }     for (int i = 1; i <= a; i++)       for (int j = 1; j <= b; j++) f[i * j]++;     for (int i = 1; i <= a * b; i++)       for (int j = 1; j <= a * b / i; j++) inc(s[i], f[i * j]);     for (int i = 1; i <= c; i++)       for (int j = 1; j <= a * b / i; j++) inc(P[i], s[i * j]);     for (int i = 1; i <= c; i++)       for (int j = 1; j <= i; j++) inc(Q[i], i / j);     long long ans = 0;     for (int i = 1; i <= c; i++)       ans = (ans + mu[i] * P[i] * Q[c / i] % (1ll << 30)) % (1ll << 30);     printf( %I64d , (ans + (1ll << 30)) % (1ll << 30));     return 0;   }   