#include <stdio.h>
// int gcd(int a,int b)
// {
// 	int r;
// 	/* ユークリッドの互除法 */
// 	r = a % b;
// 	while(r!=0)
// 	{
// 		a = b;
// 		b = r;
// 		r = a % b;
// 	}
// 	return b;
// }

// int div(int a, int b, int c)
// {
// 	int tmp;
// 	int d;

// 	if(a<b)
// 	{
// 		tmp = a;
// 		a = b;
// 		b = tmp;
// 	}
// 	d = gcd(a, b);
// 	if(c<d)
// 	{
// 		tmp = c;
// 		c = d;
// 		d = tmp;
// 	}
// 	return (gcd(c,d));
// }

int div(int a, int b, int c)
{
	int max;
	int i = 1;
	int ans = 1;
	if (a < b)
		max = b;
	else
		max = a;
	if (max < c)
		max = c;
	i = max;
	while (i > 0)
	{
		if (a % i == 0 && b % i == 0 && c % i == 0)
		{
			ans = i;
			break ;
		}
		i--;
	}
	return (ans);
}

int		main(void)
{
	int k;
	scanf("%d", &k);
	int a,b,c;
	long sum = 0;
	a = 1;
	while (a <= k)
	{
		b = 1;
		while (b <= k)
		{
			c = 1;
			while (c <= k)
			{
				if (div(a,b,c))
					sum += div(a, b, c);
				c++;
			}
			b++;
		}
		a++;
	}
	printf("%ld", sum);
	return (0);
}
