Задание выполняется с использованием прилагаемых файлов.
Откройте файл электронной таблицы, содержащей натуральные числа. Определите количество чисел, вокруг которых все ячеек являются простыми числами (сверху, снизу, справа, слева и по углам). Если с какой-либо стороны от числа нет других, то такие числа не рассматриваются. В ответ запишите полученное значение.
Перенесем все данные из таблицы в текстовый документ
def is_prime(n): # Проверка числа на простоту
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return n != 1 # if n!=1:True else: False
f = open(’1.txt’) # копируем таблицу и вставляем в текстовый файл
a = [] # будем заполнять этот массив массивами со значениями True/False
for i in range(100): # всего в таблице 100 строк
# разбиваем строку по знаку t (tab)
# применяем is_prime, чтобы узнать простое ли каждое из чисел строки
a.append([is_prime(int(x)) for x in f.readline().split(’t’)])
count = 0
# ищем следующую картину, центральный элемент в проверке не нуждается
# True True True (i - 1; j - 1) (i - 1; j) (i - 1; j + 1)
# True ---- True (i; j - 1) (i; j) (i; j + 1)
# True True True (i + 1; j - 1) (i + 1; j) (i + 1; j + 1)
for i in range(1, 99):
for j in range(1, 99):
if a[i - 1][j] and a[i + 1][j] and a[i][j + 1] and a[i][j - 1] and
a[i + 1][j + 1] and a[i + 1][j - 1] and a[i - 1][j + 1] and a[i - 1][j - 1]:
count += 1
print(count)
Ответ: 1