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 Scala (2.13.1) (judge verdict: Accepted)

import java.io.{BufferedOutputStream, BufferedReader, InputStreamReader, PrintWriter}

import scala.collection.mutable

object Main {
  def main(args: Array[String]): Unit = {
    val in = new BufferedReader(new InputStreamReader(System.in))
    val out = new PrintWriter(new BufferedOutputStream(System.out))
    val k = in.readLine().toInt

    val memo = mutable.HashMap.empty[(Int, Int), Int]

    def gcd(a: Int, b: Int): Int = {
      if (b == 0) {
        a
      } else if (a < b) {
        gcd(b, a)
      } else {
        memo.getOrElseUpdate((a, b), gcd(b, a % b))
      }
    }

    def gcd3(a: Int, b: Int, c: Int): Int = {
      gcd(a, gcd(b, c))
    }

    var sum = 0L

    for (a <- 1 to k) {
      for (b <- 1 to k) {
        for (c <- 1 to k) {
          sum += gcd3(a, b, c)
        }
      }
    }
    out.println(sum)

    out.flush()
  }

}