#include <iostream>
#include <map>
#include <utility>

using namespace std;

long long int GCD(long long int x, long long int y) {
    if(x<y) swap(x, y);
    if(y==0) return x;
    return GCD(y, x%y);
}

int main() {
    long long int K;
    cin >> K;
    map<pair<int, int>, long long int> mp;
    for(long long int i=1; i<=K; i++) {
        for(long long j=i; j<=K; j++) {
            mp[make_pair(i, j)] = GCD(i, j);
            if(i==j) continue;
            mp[make_pair(j, i)] = mp[make_pair(i, j)];
        }
    }

    long long int ans=0;
    for(long long int i=1; i<=K; i++) {
        for(long long int j=i; j<=K; j++) {
            long long int ij=mp[make_pair(i, j)];
            for(long long int k=j; k<=K; k++) {
                if(i==j && j==k) {
                    ans += mp[make_pair(ij, k)];
                } else if(i==j || j==k) {
                    ans += mp[make_pair(ij, k)]*3;
                } else {
                    ans += mp[make_pair(ij, k)]*6;
                }
            }
        }
    }
    cout << ans << endl;

    return 0;
    
}