#include<stdio.h>
#include<set>
#include<string.h>
void calc(int n){
int t,data[5001],p=0,up,ans[5001];
std::set<int> c1;
memset(ans,0,5001*4);

for(int i=1;i<n;i++){
	t=(i*i)%n;
	if(c1.find(t)==c1.end()){
		c1.insert(t);
		data[p]=t;
		p++;
	}
}
up=(n-1)/2;
for(int i=0;i<p;i++){
	for(int j=0;j<p;j++){
		if(i==j) continue;
		t=data[i]-data[j];
		t+=t<0?n:0;
		t=t>up?n-t:t;
		ans[t]++;
	}
}
for(int i=1;i<=up;i++){
	printf("%d\n",ans[i]);
}
}
int main(){
int n;
scanf("%d",&n);
while(n!=0){
	calc(n);
	scanf("%d",&n);
}
}