import java.util.*;
public class Main {
    public static void main(String[] args){
      // 入力
      Scanner sc = new Scanner(System.in);
      int K = sc.nextInt();
      
      // 最大公約数の和を算出
      int sum = 0;
      for(int i = 1; i <= K; i++){
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      }
      
      // 出力
      System.out.println(sum);
    }
    
    // 2数の最大公約数を求める関数
    public static int gcd(int a, int b){
      if(b == 0){
        return a;
      }
      
      return gcd(b, a % b);
    }
    
    // 3数の最大公約数を求める関数
    public static int extgcd(int a, int b, int c){
      return gcd(gcd(a, b), c);
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args){
      // 入力
      Scanner sc = new Scanner(System.in);
      int K = sc.nextInt();
      
      // 最大公約数の和を算出
      int sum = 0;
      for(int i = 1; i <= K; i++){
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      }
      
      // 出力
      System.out.println(sum);
    }
    
    // 2数の最大公約数を求める関数
    public static int gcd(int a, int b){
      if(b == 0){
        return a;
      }
      
      return gcd(b, a % b);
    }
    
    // 3数の最大公約数を求める関数
    public static int extgcd(int a, int b, int c){
      return gcd(gcd(a, b), c);
    }
} Main public static void main(String[] args){
      // 入力
      Scanner sc = new Scanner(System.in);
      int K = sc.nextInt();
      
      // 最大公約数の和を算出
      int sum = 0;
      for(int i = 1; i <= K; i++){
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      }
      
      // 出力
      System.out.println(sum);
    } main {
      // 入力
      Scanner sc = new Scanner(System.in);
      int K = sc.nextInt();
      
      // 最大公約数の和を算出
      int sum = 0;
      for(int i = 1; i <= K; i++){
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      }
      
      // 出力
      System.out.println(sum);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int K = sc.nextInt(); K sc.nextInt() sc.nextInt sc int sum = 0; sum 0 for(int i = 1; i <= K; i++){
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      } int i = 1; int i = 1; i 1 i <= K i K i++ i++ i {
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      } {
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      } for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        } int j = i; int j = i; j i j <= K j K j++ j++ j {
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        } {
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        } for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          } int k = j; int k = j; k j k <= K k K k++ k++ k {
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          } {
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          } if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            } i == j && j == k i == j i j j == k j k {
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            } sum = sum + extgcd(i,j,k) sum sum + extgcd(i,j,k) sum extgcd(i,j,k) extgcd i j k if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            } i == j || j == k i == j i j j == k j k {
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            } sum = sum + extgcd(i,j,k) * 3 sum sum + extgcd(i,j,k) * 3 sum extgcd(i,j,k) * 3 extgcd(i,j,k) extgcd i j k 3 {
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            } sum = sum + extgcd(i,j,k) * 6 sum sum + extgcd(i,j,k) * 6 sum extgcd(i,j,k) * 6 extgcd(i,j,k) extgcd i j k 6 System.out.println(sum) System.out.println System.out System System.out sum String[] args args // 2数の最大公約数を求める関数
    public static int gcd(int a, int b){
      if(b == 0){
        return a;
      }
      
      return gcd(b, a % b);
    } gcd {
      if(b == 0){
        return a;
      }
      
      return gcd(b, a % b);
    } if(b == 0){
        return a;
      } b == 0 b 0 {
        return a;
      } return a; a return gcd(b, a % b); gcd(b, a % b) gcd b a % b a b int a a int b b // 3数の最大公約数を求める関数
    public static int extgcd(int a, int b, int c){
      return gcd(gcd(a, b), c);
    } extgcd {
      return gcd(gcd(a, b), c);
    } return gcd(gcd(a, b), c); gcd(gcd(a, b), c) gcd gcd(a, b) gcd a b c int a a int b b int c c public class Main {
    public static void main(String[] args){
      // 入力
      Scanner sc = new Scanner(System.in);
      int K = sc.nextInt();
      
      // 最大公約数の和を算出
      int sum = 0;
      for(int i = 1; i <= K; i++){
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      }
      
      // 出力
      System.out.println(sum);
    }
    
    // 2数の最大公約数を求める関数
    public static int gcd(int a, int b){
      if(b == 0){
        return a;
      }
      
      return gcd(b, a % b);
    }
    
    // 3数の最大公約数を求める関数
    public static int extgcd(int a, int b, int c){
      return gcd(gcd(a, b), c);
    }
} public class Main {
    public static void main(String[] args){
      // 入力
      Scanner sc = new Scanner(System.in);
      int K = sc.nextInt();
      
      // 最大公約数の和を算出
      int sum = 0;
      for(int i = 1; i <= K; i++){
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      }
      
      // 出力
      System.out.println(sum);
    }
    
    // 2数の最大公約数を求める関数
    public static int gcd(int a, int b){
      if(b == 0){
        return a;
      }
      
      return gcd(b, a % b);
    }
    
    // 3数の最大公約数を求める関数
    public static int extgcd(int a, int b, int c){
      return gcd(gcd(a, b), c);
    }
} Main
import java.util.*;
public class Main {
    public static void main(String[] args){
      // 入力
      Scanner sc = new Scanner(System.in);
      int K = sc.nextInt();
      
      // 最大公約数の和を算出
      int sum = 0;
      for(int i = 1; i <= K; i++){
        for(int j = i; j <= K; j++){
          for(int k = j; k <= K; k++){
            if(i == j && j == k){
              // 3数が等しい場合、GCD * 1を加算
              sum = sum + extgcd(i,j,k);
            }else if(i == j || j == k){
              // 2数が等しい場合、GCD * 3を加算
              sum = sum + extgcd(i,j,k) * 3;
            }else{
              // 3数が異なる場合、GCD * 6を加算
              sum = sum + extgcd(i,j,k) * 6;
            }
          }
        }
      }
      
      // 出力
      System.out.println(sum);
    }
    
    // 2数の最大公約数を求める関数
    public static int gcd(int a, int b){
      if(b == 0){
        return a;
      }
      
      return gcd(b, a % b);
    }
    
    // 3数の最大公約数を求める関数
    public static int extgcd(int a, int b, int c){
      return gcd(gcd(a, b), c);
    }
}