#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<cctype>
#include<complex>
#include<iostream>
#include<sstream>
#include<algorithm>
#include<functional>
#include<vector>
#include<string>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<bitset>
#include<numeric>
#define INF 1e+8
#define EPS 1e-9
#define PB push_back
#define fi first
#define se second
#define reps(i,j,k) for(int i = j; i < k; i++)
#define rep(i,j) reps(i,0,j)
using namespace std;
const int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
typedef long long ll;
typedef pair<int,int> Pii;
int main(){
    int n;
    while(scanf("%d",&n),n){
        bool flg[12800]={0};
        vector < int > numbers;
        reps(i,1,n/2+1){
            int tmp = (i*i)%n;
            if(flg[tmp]++)continue;
            numbers.PB(tmp);
        }
        int cnt[12800]={0};
        int len = numbers.size();
        sort(numbers.begin(),numbers.end());
        rep(i,len){
            reps(j,i+1,len){
                int tmp = numbers[j]-numbers[i];
                if(tmp > (n-1)/2)tmp = n-tmp;
                cnt[tmp]++;
            }
        }
        reps(i,1,(n-1)/2+1){
            printf("%d\n",2*cnt[i]);
        }
    }
    return 0;
}