#include<stdio.h>
#include<math.h>
#include<string>
#include<cmath>
#include<vector>
//最小公倍数
int gcd(int m, int n){
 int M=m,N=n; 

    int temp;
    while(m%n!=0){
        temp=n;
        n=m%n;
        m=temp;
    }
    return (int)n;
 }


int main(void){
    int k;
    long long int ans=0;
    scanf("%d",&k);
    for(int m=1;m<=k;m++){
        for(int n=1;n<=m;n++){
            for(int s=1;s<=n;s++){
                int pre=gcd(gcd(m,n),s);
                if((m==n)||(n==s)){
                    if(m==s){
                        ans+=pre;
                    }else{
                        ans+=pre*3;
                    }
                }else{
                    ans+=pre*=6;
                }
            }
        }
    }
    printf("%lld",ans);
      
}