fork download
  1. # 0JLQsNGB0LjQu9GM0ZTQstCwINCQ0YDRltC90LA=
  2. from pprint import pprint
  3. n = 8
  4. matrix = [[0 for _ in range(n)] for _ in range(n)]
  5.  
  6. def prime(num):
  7. if num < 2:
  8. return False
  9. for i in range(2, int(num ** 0.5) + 1):
  10. if num % i == 0:
  11. return False
  12. return True
  13.  
  14.  
  15. x, y = n // 2, n // 2
  16.  
  17. directions = [(0, 1), (-1, 0), (0, -1), (1, 0)]
  18.  
  19. num = 1
  20. step = 1
  21. dir_index = 0
  22.  
  23.  
  24. while num <= n * n:
  25. for _ in range(2):
  26. dx, dy = directions[dir_index % 4]
  27. for _ in range(step):
  28. if 0 <= x < n and 0 <= y < n:
  29. matrix[x][y] = num if prime(num) else 0
  30. num += 1
  31. y += dy
  32. x += dx
  33. dir_index += 1
  34. step += 1
  35. pprint(matrix)
Success #stdin #stdout 0.32s 19404KB
stdin
Standard input is empty
stdout
[[0, 0, 0, 0, 53, 0, 0, 0],
 [0, 37, 0, 0, 0, 0, 0, 31],
 [59, 0, 17, 0, 0, 0, 13, 0],
 [0, 0, 0, 5, 0, 3, 0, 29],
 [61, 0, 19, 0, 0, 2, 11, 0],
 [0, 41, 0, 7, 0, 0, 0, 0],
 [0, 0, 0, 0, 23, 0, 0, 0],
 [0, 43, 0, 0, 0, 47, 0, 0]]