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 OCaml (4.10.0) (judge verdict: Accepted)

Scanf.scanf "%d" (fun k ->
    let mat = Array.make_matrix 201 201 (-1) in
    let rec gcd a b = if b = 0 then a else
        if mat.(a).(b) >= 0 then mat.(a).(b) else
            let r = gcd b (a mod b) in
            let () = mat.(a).(b) <- r in
            r
    in

    let rec loop_a a acc =
        let rec loop_b b acc =
            let rec loop_c ab c acc =
                if c > k then acc else loop_c ab (c + 1) (acc + gcd ab c)
            in
            if b > k then acc else loop_b (b + 1) (loop_c (gcd a b) 1 acc)
        in
        if a > k then acc else loop_a (a + 1) (loop_b 1 acc)
    in
    loop_a 1 0 |> Printf.printf "%d\n"
)