5 января 2025 г.

Логика. Задание № 15 "Задачи с делителями"

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Сколько существует натуральных значений A на отрезке [1;1000], при которых формула

ДЕЛ(A, 9) ∧ (ДЕЛ(280, x) → (¬ДЕЛ(A, x) → ¬ДЕЛ(730, x)))

тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?

Решение:

1) Преобразуем выражение ДЕЛ(A, 9) ∧ (ДЕЛ(280, x) → (¬ДЕЛ(A, x) → ¬ДЕЛ(730, x))) = ДЕЛ(A, 9) ∧ (¬ДЕЛ(280, x) + (¬ДЕЛ(A, x) → ¬ДЕЛ(730, x))) = ДЕЛ(A, 9) ∧ (¬ДЕЛ(280, x) + ДЕЛ(A, x) + ¬ДЕЛ(730, x)) = 1

2) Напишем программу на Phyton

'''ДЕЛ(A, 9) ∧ (¬ДЕЛ(280, x) + ДЕЛ(A, x) + ¬ДЕЛ(730, x)) = 1'''

s=0

for a in range(1,1001):

  flag=True

  for x in range(1,10000):

    if not ((a%9==0) and ((280%x!=0) or (a%x==0) or (730%x!=0))):

      flag=False

      break

  if flag: 

    print(a)

    s+=1

print ('s=',s)

Вывод:

90

180

270

360

450

540

630

720

810

900

990

s= 11

Ответ: 11

Комментариев нет:

Отправить комментарий