#include <stdio.h>
int kouyakusuu(int a,int b);
int main(){
    int ans=0,tmp=0,k,b,c;
    scanf("%d",&k);
    for(int a=1;a<=k;a++){
        for(b=1;b<=k;b++){
            for(c=1;c<=k;c++){
                tmp=kouyakusuu(a,b);
                tmp=kouyakusuu(tmp,c);
                ans+=tmp;
            }
            c=1;
        }
        b=1;
    }
        printf("%d\n",ans);
}
int kouyakusuu(int a,int b){
    int tmp,r;
    /* 自然数 a > b を確認・入替 */
     if(a<b){
       tmp = a;
       a = b;
       b = tmp;
     }
     /* ユークリッドの互除法 */
     r = a % b;
     while(r!=0){
       a = b;
       b = r;
       r = a % b;
     }
     /* 最大公約数を出力 */
    return b;
}
