#include <stdio.h>
#include <stdlib.h>
int GCD(int i,int j){
int m,k=0,a[100];
int d=0;
for(m=1;m<=i;m++){
if(((i%m)==0) && ((j%m)==0)){
a[k]=m;
if(a[k]>d){
d=a[k];
}
}
k++;
}
return d;
}
int main()
{
int i,j,N,G;
while(scanf("%d",&N
)==1){
G=0;
if(N==0){
break;
}
for(i=1;i<N;i++){
for(j=i+1;j<=N;j++)
{
G+=GCD(i,j);
}
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCgppbnQgR0NEKGludCBpLGludCBqKXsKCiAgIGludCBtLGs9MCxhWzEwMF07CgogICBpbnQgZD0wOwoKICAgZm9yKG09MTttPD1pO20rKyl7CgogICAgICBpZigoKGklbSk9PTApICYmICgoaiVtKT09MCkpewoKICAgICAgICBhW2tdPW07CgogICAgICAgIGlmKGFba10+ZCl7CgogICAgICAgICAgZD1hW2tdOwoKICAgICAgfQoKICAgICAgfQoKICAgIGsrKzsKCiAgIH0KCiAgICAgIHJldHVybiBkOwoKfQoKCmludCBtYWluKCkKewogICAgaW50IGksaixOLEc7CgogICAgd2hpbGUoc2NhbmYoIiVkIiwmTik9PTEpewoKICAgIEc9MDsKCiAgICBpZihOPT0wKXsKCiAgICAgIGJyZWFrOwoKICAgIH0KCiAgICBmb3IoaT0xO2k8TjtpKyspewoKICAgIGZvcihqPWkrMTtqPD1OO2orKykKCiAgICB7CiAgICAgICBHKz1HQ0QoaSxqKTsKCiAgICB9CgogICAgfQoKICAgICBwcmludGYoIiVkXG4iLEcpOwoKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=