#include <stdio.h>

int yuku(int,int,int);

int main(void){
    int i,j,p,k,dob=0,tri=0, sum=0,l;
    scanf("%d",&k);

    for(i=1;i<=k;i++){
        for(j=1;j<=k;j++){
            for(p=1;p<=k;p++){
                l = yuku(i,j,p);
                if(i==j==p){
                    tri += l;
                }else if(i==j || i==p || j==p){
                    dob += l;
                }else{
                    sum += l;
                }
            }
        }
    }

    //dob /= 2;

    printf("%d",sum+dob+tri);

    return 0;
}

int yuku(int a, int b, int c){
    int buff, r;

    if(a<b){
        buff = a;
        a = b;
        b = buff;
    }

  /* ユークリッドの互除法 */
    r = a % b;

    while(r!=0){
        a = b;
        b = r;
        r = a % b;
    }

    if(c<b){
        buff = c;
        c = b;
        b = buff;
    }

  /* ユークリッドの互除法 */
    r = c % b;
    
    while(r!=0){
        c = b;
        b = r;
        r = c % b;
    }

    return b;

}