
import java.io.*;
import java.util.*;

class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int k = sc.nextInt();
		int sum = 0;
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=1;i<=k;i++){
			for(int j=1;j<=k;j++){
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			}
		}
		for(int i=1;i<=k;i++){
			for(int j=0;j<list.size();j++){
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			}
		}
		System.out.println(sum);
	}

	public static int gcd(int x, int y){
		int z = x%y;
		if(z!=0){
			return gcd(y, z);
		}
		return y;
	}
} import java.io.*; io.* java import java.util.*; util.* java class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int k = sc.nextInt();
		int sum = 0;
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=1;i<=k;i++){
			for(int j=1;j<=k;j++){
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			}
		}
		for(int i=1;i<=k;i++){
			for(int j=0;j<list.size();j++){
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			}
		}
		System.out.println(sum);
	}

	public static int gcd(int x, int y){
		int z = x%y;
		if(z!=0){
			return gcd(y, z);
		}
		return y;
	}
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int k = sc.nextInt();
		int sum = 0;
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=1;i<=k;i++){
			for(int j=1;j<=k;j++){
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			}
		}
		for(int i=1;i<=k;i++){
			for(int j=0;j<list.size();j++){
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			}
		}
		System.out.println(sum);
	} main {
		Scanner sc = new Scanner(System.in);
		int k = sc.nextInt();
		int sum = 0;
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=1;i<=k;i++){
			for(int j=1;j<=k;j++){
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			}
		}
		for(int i=1;i<=k;i++){
			for(int j=0;j<list.size();j++){
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			}
		}
		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 ArrayList<Integer> list = new ArrayList<Integer>(); list new ArrayList<Integer>() for(int i=1;i<=k;i++){
			for(int j=1;j<=k;j++){
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			}
		} int i=1; int i=1; i 1 i<=k i k i++ i++ i {
			for(int j=1;j<=k;j++){
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			}
		} {
			for(int j=1;j<=k;j++){
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			}
		} for(int j=1;j<=k;j++){
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			} int j=1; int j=1; j 1 j<=k j k j++ j++ j {
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			} {
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			} if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				} i < j i j {
					list.add(gcd(j,i));
				} list.add(gcd(j,i)) list.add list gcd(j,i) gcd j i {
					list.add(gcd(i,j));
				} list.add(gcd(i,j)) list.add list gcd(i,j) gcd i j for(int i=1;i<=k;i++){
			for(int j=0;j<list.size();j++){
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			}
		} int i=1; int i=1; i 1 i<=k i k i++ i++ i {
			for(int j=0;j<list.size();j++){
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			}
		} {
			for(int j=0;j<list.size();j++){
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			}
		} for(int j=0;j<list.size();j++){
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			} int j=0; int j=0; j 0 j<list.size() j list.size() list.size list j++ j++ j {
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			} {
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			} if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				} i < list.get(j) i list.get(j) list.get list j {
					sum += gcd(list.get(j), i);
				} sum += gcd(list.get(j), i) sum gcd(list.get(j), i) gcd list.get(j) list.get list j i {
					sum += gcd(i, list.get(j));
				} sum += gcd(i, list.get(j)) sum gcd(i, list.get(j)) gcd i list.get(j) list.get list j System.out.println(sum) System.out.println System.out System System.out sum String[] args args public static int gcd(int x, int y){
		int z = x%y;
		if(z!=0){
			return gcd(y, z);
		}
		return y;
	} gcd {
		int z = x%y;
		if(z!=0){
			return gcd(y, z);
		}
		return y;
	} int z = x%y; z x%y x y if(z!=0){
			return gcd(y, z);
		} z!=0 z 0 {
			return gcd(y, z);
		} return gcd(y, z); gcd(y, z) gcd y z return y; y int x x int y y

import java.io.*;
import java.util.*;

class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int k = sc.nextInt();
		int sum = 0;
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=1;i<=k;i++){
			for(int j=1;j<=k;j++){
				if (i < j){
					list.add(gcd(j,i));
				}
				else{
					list.add(gcd(i,j));
				}
			}
		}
		for(int i=1;i<=k;i++){
			for(int j=0;j<list.size();j++){
				if (i < list.get(j)){
					sum += gcd(list.get(j), i);
				}
				else{
					sum += gcd(i, list.get(j));
				}
			}
		}
		System.out.println(sum);
	}

	public static int gcd(int x, int y){
		int z = x%y;
		if(z!=0){
			return gcd(y, z);
		}
		return y;
	}
}