#include<algorithm>
#include<iostream>
#include<iomanip>
#include<cstring>
#include<cstdlib>
#include<utility>
#include<string>
#include<cstdio>
#include<vector>
#include<bitset>
#include<cmath>
#include<ctime>
#include<queue>
#include<deque>
#include<stack>
#include<map>
#include<set>
using namespace std;
const int inf=2147483647,dx[]={-1,0,1,0},dy[]={0,-1,0,1};// 上 左 下 右
const int N=100005,M=1000005,K=200005,mod=1000000007;
const long long llinf=9223372036854775807ll;
//int & long long
int n;
long long ans;
long long gcd(long long x,long long y)
{
	if(x%y==0)
		return y;
	return gcd(y,x%y);
}
long long g(long long a,long long b,long long c)
{
	return gcd(a,gcd(b,c));
}
long long c(int a,int b,int c)
{
	if(a==b&&b==c)
		return 1;
	if(a==b||b==c||a==c)
		return 3;
	return 6;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=i;j<=n;j++)
			for(int k=j;k<=n;k++)
				ans+=c(i,j,k)*g(i,j,k);
	cout<<ans;
	return 0;
}