Задание 5. Информатика. ЕГЭ. Поляков-7763

Просмотры: 107
Изменено: 21 февраля 2025

(О. Лысенков) На вход алгоритма подается целое неотрицательное число \(N.\) Алгоритм строит по нему новое число \(R\) по следующим образом:

  1. Число \(N\) переводится в систему счисления с основанием \(30.\)
  2. Вычисляет сумма значений цифр данного числа в \(30\)-ричной системе счисления.
  3. Число \(R\) определяется как полученная сумма, умноженная на значение последней десятичной цифры числа \(N.\)

Найдите количество чисел \(N,\) меньших \(1000,\) для которых соответствующее значение \(R\) — не простое число.

Решение:

Python


def is_prime(x):
    if x in (0, 1):
        return False
    if x in (2, 3):
        return True
    for d in range(2, int(x**0.5) + 1):
        if x % d == 0:
            return False
    return True

def R(N):
    if N == 0:
        return 0
    alph = '0123456789ABCDEFGHIJKLNMOPQRSTUVWXYZ'
    ans = ''
    last_dig = N % 10
    while N:
        ans = alph[N % 30] + ans
        N //= 30
    return sum(int(x, 30) for x in ans) * last_dig

print(sum(not is_prime(R(x)) for x in range(10**3)))

Ответ: \(970\)