#include <bits/stdc++.h>
#include <algorithm>
#define _GLIBCXX_DEBUG
#define rep(i,n) for(int i=0;i<(n);++i)
#define all(x) (x).begin(), (x).end()
#define PB(x) push_back(x)
#define MP(x,y) make_pair(x,y)
using namespace std;
typedef long long ll;
typedef pair<int, int> P;

//最大公約数をユークリッドの互除法を使って求める
//計算量はlog(max(a,b))
int gcd(int a, int b) {
    if(a==0||b==0) return 0;
    if(a % b == 0)
    return b;
    return gcd(b, a % b);
}



int main() {
    
    int k;
    cin >> k;
    k++;
    int ans = 0;
    rep(i,k) {
        rep(j,k) {
            rep(l,k) {
                ans+=gcd(gcd(i,j),l);
            }
        }
    }

    cout<<ans<<endl;


 return 0;
}
