Задача к ЕГЭ по информатике на тему «Маски» №4

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

— символ «?» означает ровно одну произвольную цифру;

— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

Сколько существует простых натуральных чисел, соответствующих следующей маске 987?654?3  . В ответ запишите количество чисел.

Решение через циклы

def is_simple(n): # функция, которая проверяет, что число простое
    if n==1:
        return False
    for i in range(2,int(n**0.5)+1):
        if n%i==0:
            return False
    return True
counter=0
for a1 in (’0123456789’):
    for a2 in (’0123456789’):
        s=’987’+a1+’654’+a2+’3’ # формируем число, удовлетворяющее маске
        n=int(s)
        if is_simple(n): # если число простое
            counter+=1
print(counter)

Решение через срезы

def simple(n): # функция, которая проверяет, что число простое
    if n == 1: return False
    for i in range(2,int(n**0.5)+1):
        if n % i == 0:
            return False
    return True
count = 0
for x in range(987065403,987965493+1):
    n = str(x)
    if ’987’ in n[:3] and ’654’ in n[4:7] and n[-1] == ’3’: # проверка, что число удовлетворяет маске
        if simple(x): # проверка, что число - простое
            count += 1
print(count)

Ответ: 12
Оцените статью
Я решу все!