I. Таблица умножения 3.0

Местная фабрика канцелярских товаров заказала программу, которая генерирует таблицы умножения.
Давайте поможем производителю.

Формат ввода

Вводится одно натуральное число — требуемый размер таблицы.

Формат вывода

Таблица умножения заданного размера.

Примечание

itertools.product отличный способ, чтобы избавиться от вложенных циклов.

Пример

Ввод

3

Вывод

1 2 3
2 4 6
3 6 9

Ввод

5

Вывод

1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25

Решение

Яндекс рекомендует использовать product() для того, чтобы избежать вложенных циклов. Обратная сторона такого решения — мы получаем на выходе плоский (одномерный) список, но есть и хорошие новости — у нас есть islice().

Посмотреть код

Решение

Python
from itertools import product, islice

size = int(input())

nums = range(1, size + 1)

table = [x * y for x, y in product(nums, repeat=2)]

for row in range(size):
    print(*islice(table, row * size, (row + 1) * size))
Подписаться
Уведомить о
guest
5 комментариев
Старые
Новые Популярные
Аноним
Аноним
22.10.2024 11:34

А что за звёздочка перед islice?

Сергей
Сергей
12.08.2026 19:01

Доброго времени суток!

Знаю, что яндекс просит использовать «product()«.
Но хотел бы уточнить. Это более оптимальное решение, чем просто создать сразу список чисел?

»
from itertools import islice

size = int(input())

numbers = [i for i in range(1, size ** 2 + 1)]

for row in range(size):
    print(*islice(numbers, row * size, (row + 1) * size))

Сергей
Сергей
Ответить на  Сергей Клочко
13.08.2026 18:00

Спасибо за ответ!