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

int main()
{
  int n;
  for(;cin>>n,n;)
    {

      map<int,bool>hash;
      vector<int> data;
      for(int i=1;i<n;i++)
	{
	  if(hash.count(i*i%n)==0)
	    {
	      hash[i*i%n]=true;
	      data.push_back(i*i%n);
	    }
	}
      int ans[(n-1)/2+2];
      memset(ans,0,sizeof(ans));
      for(int i=0;i<data.size()-1;i++)
	for(int j=i+1;j<data.size();j++)
	  {
	    int tmp=data[i]-data[j];
	    if(tmp<0)
	      tmp+=n;
	    if(tmp>(n-1)/2)
	      tmp=n-tmp;
	    ans[tmp]++;

	    tmp=data[j]-data[i];
	    if(tmp<0)
	      tmp+=n;
	    if(tmp>(n-1)/2)
	      tmp=n-tmp;
	    ans[tmp]++;
	  }
      for(int i=1;i<=(n-1)/2;i++)
	cout<<ans[i]<<endl;
    }
}