Программное решение задач ЕГЭ по информатике

Задача 5921. Источник: Поляков. Задание КИМ 15

Страница задачи 5921

(М. Ишимов) Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Обозначим через СУММБОЛ(s, d) утверждение «сумма целых чисел s и d больше 0». Для какого наименьшего натурального числа А формула

(x + A ≥ 160) ∨ (ДЕЛ(x, 7) → ¬СУММБОЛ(x, –17))

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

Решение

Левая часть выражения будет гарантировать истину при значении А или x от 159. Поэтому имеет смысл перебирать значения только до данного.

Python

  1. for a in range(1, 160):
  2. f = True
  3. for x in range(1, 160):
  4. if not (x + a >= 160 or ((x % 7 == 0) <= (not x - 17 > 0))):
  5. f = False
  6. break
  7. if f:
  8. print(a)
  9. break

PascalABC

  1. var
  2. a, x: Integer;
  3. f: Boolean;
  4. begin
  5. for a := 1 to 159 do
  6. begin
  7. f := True;
  8. for x := 1 to 159 do
  9. if not ((x + a >= 160) or ((x mod 7 = 0) <= not (x - 17 > 0))) then
  10. begin
  11. f := False;
  12. break;
  13. end;
  14. if f then
  15. begin
  16. Writeln(a);
  17. break;
  18. end;
  19. end;
  20. end.

C++

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. for (int a = 1; a < 160; a++)
  6. {
  7. bool f = true;
  8. for (int x = 1; x < 160; x++)
  9. if (!(x + a >= 160 || ((x % 7 == 0) <= (!(x - 17 > 0)))))
  10. {
  11. f = false;
  12. break;
  13. }
  14. if (f)
  15. {
  16. cout << a << endl;
  17. break;
  18. }
  19. }
  20. }

Ответ

139

Отправить замечание по решению

Код по которому имеется замечание:

Ваш вариант кода:

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