#C, 112 bytes
C, 112 bytes
a[101];f(i,j,k,t){for(a[i=1]=0;i++<100;printf("%d ",a[i]=a[t]+1))for(t=j=0;++j<i;t+=k==1)for(k=j;j%k||i%k;k--);} Ungolfed:
a[101]; f(i,j,k,t){ for(a[1]=0,i=2;i<=100;i++) { // initialize for(t=j=0;++j<i;t+=k==1) // count gcd(i, j) == 1 (t = phi(i)) for(k=j;j%k||i%k;k--); // calculate k = gcd(i, j) printf("%d ",a[i]=a[t]+1); // print and store results } }