Решение с использование длинной арифметики. var i, j, n, len, rem: integer; a: array[1..200] of byte; begin write('Введите число: '); read(n); len := 1; a[1] := 1; for i := n + 1 to 99 {100} do begin for j := 1 to len do begin rem := a[j] * i + rem; a[j] := rem mod 10; rem := rem div 10; end; while rem > 0 do begin inc(len); a[len] := rem mod 10; rem := rem div 10; end; end; writeln('Произведение чисел из интервала (', n, '; 100): '); for i := len downto 1 do write(a[i]); end. Пример работы программы: Введите число: 1 Произведение чисел из интервала (1; 100): 1948348720420644788695888257080283249381963823594360049498643927185579338215778728274424636079639781709574621897447185108592230400000000000000000000
1) F=Av(¬A&B) По закону дистрибутивности раскроем скобки (Av¬A)&(AvB) Av¬A = 1, значит остаётся AvB
2) F =A&(¬AvB) По тому же закону раскрываем скобки (A&¬A)v(A&B) A&¬A = 0, значит остаётся A&B
3. (AvB)&(¬BvA)&(¬CvB) По закону склеивания (AvB)&(¬BvA) = A , получается, что выражение принимает вид A&(¬CvB) Можно раскрыть скобки, получим A&¬C v A&B
4) F =(1v(AvB))v((AC)&1) Скобка (1v(AvB)) = 1, так как 1 v ЧТОУГОДНО = 1 Получаем выражение 1v((AC)&1) = 1, так как 1 v ЧТОУГОДНО = 1 ответ 1
var
i, j, n, len, rem: integer;
a: array[1..200] of byte;
begin
write('Введите число: ');
read(n);
len := 1;
a[1] := 1;
for i := n + 1 to 99 {100} do
begin
for j := 1 to len do
begin
rem := a[j] * i + rem;
a[j] := rem mod 10;
rem := rem div 10;
end;
while rem > 0 do
begin
inc(len);
a[len] := rem mod 10;
rem := rem div 10;
end;
end;
writeln('Произведение чисел из интервала (', n, '; 100): ');
for i := len downto 1 do write(a[i]);
end.
Пример работы программы:
Введите число: 1
Произведение чисел из интервала (1; 100):
1948348720420644788695888257080283249381963823594360049498643927185579338215778728274424636079639781709574621897447185108592230400000000000000000000