var
i, p, n, q, sum: integer;
a : array[1..1000000] of byte;
begin
Write('Введите число N: ');
ReadLn(n);
Write('Введите основание системы счисления q: ');
ReadLn(q);
p := n;
while p > 0 do
i := i + 1;
a[i] := p mod q;
sum := sum + a[i];
p := p div q;
end;
Write(n,'(10) = ');
for p := i downto 1 do
Write(a[p]);
WriteLn('(', q, ')');
WriteLn('Сумма цифр полученного числа равна ', sum);
WriteLn('Количество цифр полученного числа равна ', i);
end.
Объяснение:
¬ (A v B ) /\ ¬ C =(раскроем скобки по закону де-Моргана)=
= ¬A /\ ¬B /\ ¬ C =(доказательство этого перехода - через таблицу истинности)= ¬(A v B v C)
Доказательство последнего равенства:
1) ¬A /\ ¬B /\ ¬ C
А B C F
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
2) ¬(A v B v C)
Так как таблицы истинности совпали, последний переход равносилен.
ответ: ¬(A v B v C)
var
i, p, n, q, sum: integer;
a : array[1..1000000] of byte;
begin
Write('Введите число N: ');
ReadLn(n);
Write('Введите основание системы счисления q: ');
ReadLn(q);
p := n;
while p > 0 do
begin
i := i + 1;
a[i] := p mod q;
sum := sum + a[i];
p := p div q;
end;
Write(n,'(10) = ');
for p := i downto 1 do
Write(a[p]);
WriteLn('(', q, ')');
WriteLn('Сумма цифр полученного числа равна ', sum);
WriteLn('Количество цифр полученного числа равна ', i);
end.
Объяснение:
¬ (A v B ) /\ ¬ C =(раскроем скобки по закону де-Моргана)=
= ¬A /\ ¬B /\ ¬ C =(доказательство этого перехода - через таблицу истинности)= ¬(A v B v C)
Доказательство последнего равенства:
1) ¬A /\ ¬B /\ ¬ C
А B C F
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
2) ¬(A v B v C)
А B C F
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
Так как таблицы истинности совпали, последний переход равносилен.
ответ: ¬(A v B v C)