import networkx as nx import matplotlib.pyplot as plt def residue(x, p): for i in range(1, p): if (i*i - x) % p == 0: return True return False p = 17 G = nx.Graph() for i in range(p): for j in range(i+1, p): if residue(i-j, p): G.add_edge(i, j) nx.draw_circular(G) plt.show()