Без дополнительных ограничений достаточно заполнить матрицу числами от 1 до n² по строкам. Простота n не нужна для существования такого решения.
Создание квадратной матрицы из уникальных положительных чисел
Без дополнительных ограничений достаточно заполнить матрицу числами от 1 до n² по строкам. Простота n не нужна для существования такого решения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Дано простое целое число n (от 2 до 7), которое задаёт размер стороны квадратной матрицы. Необходимо написать программу, которая формирует n × n матрицу, заполненную различными положительными целыми числами.
Ответ
Без дополнительных ограничений достаточно заполнить матрицу числами от 1 до n² по строкам. Простота n не нужна для существования такого решения.
def matrix(n):
if n not in (2, 3, 5, 7):
raise ValueError('Expected prime n from 2 to 7')
return [[row * n + col + 1 for col in range(n)] for row in range(n)]
При n = 2 получится [[1, 2], [3, 4]]. Все числа положительны и различны, время и память O(n²). Требований к суммам строк, диагоналям или магическому квадрату в исходном условии нет.