Задача к ЕГЭ по информатике на тему «обработка числовой информации в электронных таблицах» №20

Задание выполняется с использованием прилагаемых файлов.

Откройте файл электронной таблицы, содержащей натуральные числа. Определите количество чисел, вокруг которых все 8  ячеек являются простыми числами (сверху, снизу, справа, слева и по углам). Если с какой-либо стороны от числа нет других, то такие числа не рассматриваются. В ответ запишите полученное значение.

Перенесем все данные из таблицы в текстовый документ

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
Оцените статью
Я решу все!