Домашние задания: Информатика

Помогите решить задачу по информатике! Питон

Вася решил поучаствовать в школьной лотерее. Для этого ему нужно выбрать простое число до 50, но он их совсем не помнит.
Выведи все простые числа до 50. Переходи на новую строку при начале нового десятка (то есть, простые числа до 10 должны быть на первой строчке, а от 10 до 20 — на второй, и т.д.).
С проверкой делимости только на ранее найденные простые числа, без лишних циклов, с отступами, и с нормальным форматированием результата:
 def genp(N):
yield 2; yield 3
for c in range(5, N + 1, 6):
yield c; yield c + 2

def check(c, primes):
for p in primes:
if p * p > c: return True
if c % p == 0: return False
return True

PRIMES = []
PRIMES.extend(c for c in genp(50) if check(c, PRIMES))
b = STEP = 10
print(' '.join(('' if n < b else (b := b + STEP, '\n')[1]) + "{:2}".format(n) for n in PRIMES))
Выводит следующее:
  2  3  5  7
11 13 17 19
23 29
31 37
41 43 47
Данил Валиуллин
Данил Валиуллин
4 906
Лучший ответ
Пример решения на Python:

# Функция для проверки, является ли число простым
def is_prime(n):
if n < 2:
return False
for i in range(2, n):
if n % i == 0:
return False
return True

# Выводим все простые числа до 50
for i in range(2, 51):
if is_prime(i):
# Переход на новую строку каждые 10 чисел
if (i-2) % 10 == 0:
print()
print(i, end=' ')

Результат работы программы:
2 3 5 7
11 13 17 19
23 29 31 37
41 43 47