Задача 5921. Источник: Поляков
(М. Ишимов) Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m». Обозначим через СУММБОЛ(s, d) утверждение «сумма целых чисел s и d больше 0». Для какого наименьшего натурального числа А формула
(x + A ≥ 160) ∨ (ДЕЛ(x, 7) → ¬СУММБОЛ(x, –17))
тождественно истинна (т.е. принимает значение 1) при любом натуральном значении переменной х?
Решение
Левая часть выражения будет гарантировать истину при значении А или x от 159. Поэтому имеет смысл перебирать значения только до данного.
Python
for a in range(1, 160):
f = True
for x in range(1, 160):
if not (x + a >= 160 or ((x % 7 == 0) <= (not x - 17 > 0))):
f = False
break
if f:
print(a)
break
PascalABC
var
a, x: Integer;
f: Boolean;
begin
for a := 1 to 159 do
begin
f := True;
for x := 1 to 159 do
if not ((x + a >= 160) or ((x mod 7 = 0) <= not (x - 17 > 0))) then
begin
f := False;
break;
end;
if f then
begin
Writeln(a);
break;
end;
end;
end.
C++
#include <iostream>
using namespace std;
int main()
{
for (int a = 1; a < 160; a++)
{
bool f = true;
for (int x = 1; x < 160; x++)
if (!(x + a >= 160 || ((x % 7 == 0) <= (!(x - 17 > 0)))))
{
f = false;
break;
}
if (f)
{
cout << a << endl;
break;
}
}
}
Ответ
139