a = [] primes = [] for i in range(2, 1300): j = 2 fail = 0 while j * j <= i: if i % j == 0: fail = 1 break j += 1 if fail == 0: primes.append(i) grid = [] for i in range(650): grid.append([1] * 650) for prime in primes: for i in range(prime, 650, prime): for j in range(prime, 650, prime): grid[i][j] = 0 for i in range(1, 650): for j in range(1, 650): if grid[i][j] == 1: a.append((i, j)) def get_frac(tuple1): return tuple1[1]/tuple1[0] a.sort(key = get_frac) currx = 0 curry = 0 print(10 ** 6) ans = [] for i in range(250000): currx += a[i][0] curry += a[i][1] ans.append(str(currx) + ' ' + str(curry)) for i in range(250000): currx -= a[i][1] curry += a[i][0] ans.append(str(currx) + ' ' + str(curry)) for i in range(250000): currx -= a[i][0] curry -= a[i][1] ans.append(str(currx) + ' ' + str(curry)) for i in range(250000): currx += a[i][1] curry -= a[i][0] ans.append(str(currx) + ' ' + str(curry)) print('\n'.join(ans))