(40 ) напишите развернутый ответ к :
определите наименьшее натуральное число a, такое что выражение
( (x & 20 ≠ 0) \/ (x & 55 ≠ 0)) -> ((x & 7 = 0) -> (x & a ≠ 0))
тождественно истинно (то есть принимает значение 1 при любом натуральном значении переменной x)?
{PascalABC}
Program Begenjov1997;
const
n = 200; {Количество элементов массива}
m = 10000; {Максимально возможное значение элемента}
var
a:array[1..n] of integer;
i, chet,nech: integer;
s:string;
begin
s:=' -=Alphaeus=- ';
for i:=1 to 22 do begin write(s[i]); sleep(60) end;
{заполняем массив случайными числами}
writeln; randomize;
for i:=1 to n do a[i]:=random(m+1);
{Ищем максимальный чётный и максимальный нечётный элементы}
chet:=a[1];nech:=a[1];
for i:=2 to n do
begin
if (a[i]>chet) and (a[i] mod 2 = 0) then chet:=a[i];
if (a[i]>nech) and (a[i] mod 2 <> 0) then nech:=a[i];
end;
{сравниваем чёт и нечет, заменяем нужное на нули и выводим}
writeln;
for i:=1 to n do
begin
if (chet>nech) and (a[i] mod 2 = 0) then a[i]:=0;
if (nech>chet) and (a[i] mod 2 <> 0) then a[i]:=0;
writeln(a[i]:4);
end;
end.
Program Begenjov1997;
const
n = 40; {Количество элементов массива}
m = 10000; {Максимально возможное значение элемента}
var
a:array[1..n] of integer;
i,min: integer; b:boolean;
s:string;
begin
s:=' -=Alphaeus=- ';
for i:=1 to 22 do begin write(s[i]); sleep(60) end;
{заполняем массив случайными числами}
writeln; randomize;
for i:=1 to n do a[i]:=random(m+1);
{Ищем минимальный элемент с семеркой в конце в 8-ичной записи}
min:=a[1]; b:=false;
for i:=2 to n do
if (a[i] mod 8 = 7) and (a[i]<min) then
begin
min:=a[i];
b:=true;
end;
{выводим min}
writeln;
if b then writeln('минимальный элемент с семеркой в конце в 8-ичной записи = ',min)
else writeln('0 (нет такого элемента)');
end.