import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
import java.lang.Math;

class Main {
    
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt();
        scanner.close();
        List<Integer> list = new ArrayList<>();
        for(int i=1; i<=k; i++){
            for(int j=1; j<=k; j++){
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            }
        }
        int sum = 0;
        for (Integer val : list) {
            for(int i=1; i<=k; i++){
                sum += gcd(val, i);
            }
        }
        
        // int sum = 0;
        // for(int i=0; i<Math.pow(k, 3); i++){
        //     List<Integer> input = list.get(i);
        //     sum += gcd(input.get(0),input.get(1),input.get(2));
        // }
        System.out.print(sum);

    }    

    public static int gcd(int val1, int val2){
        if(val2==0){
            return val1;
        }else{
            return gcd(val2, val1%val2);
        }
    }

    public static int gcd(int... val){
        int len = val.length;
        int g = gcd(val[0], val[1]);
        for(int i=1; i<len-1; i++){
            g = gcd(g, val[i+1]);
        }
        return g;
    }
} import java.util.List; List java.util import java.util.ArrayList; ArrayList java.util import java.util.Scanner; Scanner java.util import java.lang.Math; Math java.lang class Main {
    
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt();
        scanner.close();
        List<Integer> list = new ArrayList<>();
        for(int i=1; i<=k; i++){
            for(int j=1; j<=k; j++){
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            }
        }
        int sum = 0;
        for (Integer val : list) {
            for(int i=1; i<=k; i++){
                sum += gcd(val, i);
            }
        }
        
        // int sum = 0;
        // for(int i=0; i<Math.pow(k, 3); i++){
        //     List<Integer> input = list.get(i);
        //     sum += gcd(input.get(0),input.get(1),input.get(2));
        // }
        System.out.print(sum);

    }    

    public static int gcd(int val1, int val2){
        if(val2==0){
            return val1;
        }else{
            return gcd(val2, val1%val2);
        }
    }

    public static int gcd(int... val){
        int len = val.length;
        int g = gcd(val[0], val[1]);
        for(int i=1; i<len-1; i++){
            g = gcd(g, val[i+1]);
        }
        return g;
    }
} Main public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt();
        scanner.close();
        List<Integer> list = new ArrayList<>();
        for(int i=1; i<=k; i++){
            for(int j=1; j<=k; j++){
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            }
        }
        int sum = 0;
        for (Integer val : list) {
            for(int i=1; i<=k; i++){
                sum += gcd(val, i);
            }
        }
        
        // int sum = 0;
        // for(int i=0; i<Math.pow(k, 3); i++){
        //     List<Integer> input = list.get(i);
        //     sum += gcd(input.get(0),input.get(1),input.get(2));
        // }
        System.out.print(sum);

    } main {
        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt();
        scanner.close();
        List<Integer> list = new ArrayList<>();
        for(int i=1; i<=k; i++){
            for(int j=1; j<=k; j++){
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            }
        }
        int sum = 0;
        for (Integer val : list) {
            for(int i=1; i<=k; i++){
                sum += gcd(val, i);
            }
        }
        
        // int sum = 0;
        // for(int i=0; i<Math.pow(k, 3); i++){
        //     List<Integer> input = list.get(i);
        //     sum += gcd(input.get(0),input.get(1),input.get(2));
        // }
        System.out.print(sum);

    } Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int k = scanner.nextInt(); k scanner.nextInt() scanner.nextInt scanner scanner.close() scanner.close scanner List<Integer> list = new ArrayList<>(); list new ArrayList<>() for(int i=1; i<=k; i++){
            for(int j=1; j<=k; j++){
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            }
        } int i=1; int i=1; i 1 i<=k i k i++ i++ i {
            for(int j=1; j<=k; j++){
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            }
        } {
            for(int j=1; j<=k; j++){
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            }
        } for(int j=1; j<=k; j++){
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            } int j=1; int j=1; j 1 j<=k j k j++ j++ j {
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            } {
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            } list.add(gcd(i,j)) list.add list gcd(i,j) gcd i j int sum = 0; sum 0 for (Integer val : list) {
            for(int i=1; i<=k; i++){
                sum += gcd(val, i);
            }
        } Integer val list {
            for(int i=1; i<=k; i++){
                sum += gcd(val, i);
            }
        } {
            for(int i=1; i<=k; i++){
                sum += gcd(val, i);
            }
        } for(int i=1; i<=k; i++){
                sum += gcd(val, i);
            } int i=1; int i=1; i 1 i<=k i k i++ i++ i {
                sum += gcd(val, i);
            } {
                sum += gcd(val, i);
            } sum += gcd(val, i) sum gcd(val, i) gcd val i System.out.print(sum) System.out.print System.out System System.out sum String[] args args public static int gcd(int val1, int val2){
        if(val2==0){
            return val1;
        }else{
            return gcd(val2, val1%val2);
        }
    } gcd {
        if(val2==0){
            return val1;
        }else{
            return gcd(val2, val1%val2);
        }
    } if(val2==0){
            return val1;
        }else{
            return gcd(val2, val1%val2);
        } val2==0 val2 0 {
            return val1;
        } return val1; val1 {
            return gcd(val2, val1%val2);
        } return gcd(val2, val1%val2); gcd(val2, val1%val2) gcd val2 val1%val2 val1 val2 int val1 val1 int val2 val2 public static int gcd(int... val){
        int len = val.length;
        int g = gcd(val[0], val[1]);
        for(int i=1; i<len-1; i++){
            g = gcd(g, val[i+1]);
        }
        return g;
    } gcd {
        int len = val.length;
        int g = gcd(val[0], val[1]);
        for(int i=1; i<len-1; i++){
            g = gcd(g, val[i+1]);
        }
        return g;
    } int len = val.length; len val.length val val.length int g = gcd(val[0], val[1]); g gcd(val[0], val[1]) gcd val[0] val 0 val[1] val 1 for(int i=1; i<len-1; i++){
            g = gcd(g, val[i+1]);
        } int i=1; int i=1; i 1 i<len-1 i len-1 len 1 i++ i++ i {
            g = gcd(g, val[i+1]);
        } {
            g = gcd(g, val[i+1]);
        } g = gcd(g, val[i+1]) g gcd(g, val[i+1]) gcd g val[i+1] val i+1 i 1 return g; g int... val val
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
import java.lang.Math;

class Main {
    
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int k = scanner.nextInt();
        scanner.close();
        List<Integer> list = new ArrayList<>();
        for(int i=1; i<=k; i++){
            for(int j=1; j<=k; j++){
                list.add(gcd(i,j));
                // for(int l=1; l<=k; l++){
                //     List<Integer> inputList = new ArrayList<>();
                //     inputList.add(i);
                //     inputList.add(j);
                //     inputList.add(l);
                //     list.add(inputList);
                // }
            }
        }
        int sum = 0;
        for (Integer val : list) {
            for(int i=1; i<=k; i++){
                sum += gcd(val, i);
            }
        }
        
        // int sum = 0;
        // for(int i=0; i<Math.pow(k, 3); i++){
        //     List<Integer> input = list.get(i);
        //     sum += gcd(input.get(0),input.get(1),input.get(2));
        // }
        System.out.print(sum);

    }    

    public static int gcd(int val1, int val2){
        if(val2==0){
            return val1;
        }else{
            return gcd(val2, val1%val2);
        }
    }

    public static int gcd(int... val){
        int len = val.length;
        int g = gcd(val[0], val[1]);
        for(int i=1; i<len-1; i++){
            g = gcd(g, val[i+1]);
        }
        return g;
    }
}