Problem:
Score : 300 points

Problem Statement

Find \displaystyle{\sum_{a=1}^{K}\sum_{b=1}^{K}\sum_{c=1}^{K} \gcd(a,b,c)}.

Here \gcd(a,b,c) denotes the greatest common divisor of a, b, and c.

Constraints

1 \leq K \leq 200

K is an integer.

Input

Input is given from Standard Input in the following format:

K

Output

Print the value of \displaystyle{\sum_{a=1}^{K}\sum_{b=1}^{K}\sum_{c=1}^{K} \gcd(a,b,c)}.

Sample Input 1

2

Sample Output 1

9

\gcd(1,1,1)+\gcd(1,1,2)+\gcd(1,2,1)+\gcd(1,2,2)
+\gcd(2,1,1)+\gcd(2,1,2)+\gcd(2,2,1)+\gcd(2,2,2)
=1+1+1+1+1+1+1+2=9

Thus, the answer is 9.

Sample Input 2

200

Sample Output 2

10813692

Solution in PHP (7.4.4) (judge verdict: Accepted)

<?php
$mem = [];
$ans = 0;
$S = [1, 3, 6];
fscanf(STDIN, "%d", $K);
for ($i = 1; $i <= $K; $i++) {
    for ($j = $i; $j <= $K; $j++) {
        for ($k = $j; $k <= $K; $k++) {
            $Q = 2;
            if ($i === $j) {
                $Q--;
            }
            if ($j === $k) {
                $Q--;
            }
            $x = gcd($i, $j);
            if ($x === 1) {
                $ans += 1 * $S[$Q];
            } else {
                $y = gcd($x, $k);
                $ans += $y * $S[$Q];
            }
        }
    }
}
printf("%d", $ans);

//最大公約数
function gcd($m, $n){
    global $mem;

    if($n > $m) list($m, $n) = array($n, $m);
    $mm = $m;
    $nn = $n;

    if (isset($mem[$mm][$nn])) {
        return $mem[$mm][$nn];
    }

    while($n !== 0){
        $tmp_n = $n;
        $n = $m % $n;
        $m = $tmp_n;
    }
    $mem[$mm][$nn] = $m;
    return $m;
}
 
//最小公倍数
function lcm($m, $n){
    return $m * $n / gcd($m, $n);
}