unittest
{
	assert( [ "2" ].parse.expand.solve == 9 );
	assert( [ "200" ].parse.expand.solve == 10813692 );
}



import std.conv;
import std.numeric;
import std.range;
import std.stdio;
import std.typecons;

void main()
{
	stdin.byLineCopy.parse.expand.solve.writeln;
}

auto parse( Range )( Range input )
if( isInputRange!Range && is( ElementType!Range == string ) )
{
	auto k = input.front.to!( long );
	return tuple( k );
}

auto solve( long k )
{
	auto ans = 0L;
	foreach( a; 1L .. k + 1 )
	{
		foreach( b; 1L .. k + 1 )
		{
			foreach( c; 1L .. k + 1 )
			{
				ans += gcd( gcd( a, b ), c );
			}
		}
	}
	return ans;
}
