#include<iostream>
#include<vector>
using namespace std;
 
vector<int> p;
int use[10000];
int ans,n,ansp[10000];
void dfs(int x){
  for(int i=0;i<(int)p.size();i++){
       if(p[x]!=p[i]) ans=p[x]-p[i];
    else continue;
    if(ans<0) ans+=n;
    if(ans>(n-1)/2) ans=n-ans;
    ansp[ans]++;
  }
  if(x+1<(int)p.size())dfs(x+1);
  }
 
int main(){
  while(1){
  cin>>n;
  if(n==0) break;
  int t;
  for(int i=0;i<10000;i++) use[i]=0,ansp[i]=0;
    for(int i=1;i<n;i++)t=(i*i)%n,use[t]=1;
    for(int i=0;i<n;i++) if(use[i]==1) p.push_back(i);
    dfs(0);
    for(int i=1;i<=(n-1)/2;i++) cout<<ansp[i]<<endl;
    p.clear();
  }
  return 0;
}