#include <iostream>
#include <set>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;

int ok(int n){
	if(n < 2)return 0;
	for(int i = 2 ; i*i <= n ; i++){
		if(n % i == 0) return 0;
	}
	return 1;
}
int main(){
	int n;
	while(cin >> n,n){
		set<int> r;
		for(int i = 1 ; i < n ; i++) r.insert((i*i)%n);
		vector<int> wow;
		for(set<int>::iterator it = r.begin() ; it != r.end() ; ++it)
			wow.push_back(*it);
		int mp[10001]={0};
		for(int i = 0 ; i < wow.size() ; i++){
			for(int j = 0 ; j < wow.size() ; j++){
				if( i == j) continue;
				int g = wow[i] - wow[j];
				if(g < 0) g += n;
				if(g > (n-1)/2) g = n - g;
				mp[g]++;
			}
		}
		for(int i = 1 ; i <= (n-1)/2 ; i++)
			cout << mp[i] << endl;
	}
}