Program Pr1; uses crt; var fl1,fl2:text; i,n,v,a,b:integer; Begin clrscr; assign(fl1,'input.txt'); assign(fl2,'output.txt'); reset(fl1); readln(fl1,n); v:=0; for i:=1 to 1000000 do begin if i>=10 then begin a:=i div 10; b:=i mod 10; if (a mod 2<>0) and (b mod 2<>0) then v:=v{?} 1; {здесь либо пропущен знак либо v1-новая переменная не перечисленная в списке описания переменных} end else if i mod 2<>0 then v:=v 1;{здесь тоже самое} if v=n then break; end; rewrite(fl2); writeln(fl2,v); close(fl1); close(fl2); end.
Тогда выражение будет иметь вид (a + b) → b и нужно найти условия, когда оно ложно. Вместо этого, мы будем искать, когда отрицание этого условия истинно, т.е. истинность ¬( (a + b) → b)
Для начала избавимся от импликации
¬( ¬(a + b) + b)
А теперь примерим к внешнему отрицанию закон де-Моргана
Program Pr1;
uses crt;
var fl1,fl2:text;
i,n,v,a,b:integer;
Begin
clrscr;
assign(fl1,'input.txt');
assign(fl2,'output.txt');
reset(fl1);
readln(fl1,n);
v:=0;
for i:=1 to 1000000 do begin
if i>=10 then begin
a:=i div 10;
b:=i mod 10;
if (a mod 2<>0) and (b mod 2<>0) then v:=v{?} 1; {здесь либо пропущен знак либо v1-новая переменная не перечисленная в списке описания переменных}
end
else if i mod 2<>0 then v:=v 1;{здесь тоже самое}
if v=n then break;
end;
rewrite(fl2);
writeln(fl2,v);
close(fl1);
close(fl2);
end.
1, 2, 3, 4
Объяснение:
Введем обозначения:
a = X > 0, b = X > 4
Тогда выражение будет иметь вид (a + b) → b и нужно найти условия, когда оно ложно. Вместо этого, мы будем искать, когда отрицание этого условия истинно, т.е. истинность ¬( (a + b) → b)
Для начала избавимся от импликации
¬( ¬(a + b) + b)
А теперь примерим к внешнему отрицанию закон де-Моргана
(a + b) · ¬b
Раскрываем скобки
a · ¬b + b · ¬b
a · ¬b + 0
a · ¬b
Делаем обратную замену
( X > 0) · ¬(X > 4)
( X > 0) · (X ≤ 4)
Переведем это на более понятный язык:
X > 0 И X ≤ 4, или
0 < X ≤ 4
Из целых чисел сюда подойдут 1, 2, 3, 4.