1) n = 16
2) m = 180
3) a = 26
4) a = 22
5) b = 1
Объяснение:
1)
v := 1 // v = 1
n := 24 // n = 24
v := n - v * 4 // 24 - 1 * 4 ⇒ v = 20
n := v * 2 - n // 20 * 2 - 24 ⇒ n = 16
n = 16
2)
k := 3 // k = 3
m := 30 // m = 30
k := m - k * 3 // 30 - 3 * 3 ⇒ k = 21
m := k * 10 - m // 21 * 10 - 30 ⇒ m = 180
m = 180
3)
a := 4 // a = 4
b := 9 // b = 9
b := 6 * b - a // 6 * 9 - 4 ⇒ b = 50
a := b / 5 * 3 - a // 50 / 5 * 3 - 4 ⇒ a = 26
a = 26
4)
a := -12 // a = -12
b := 14 - a / 2 // 14 - (-12) / 2 ⇒ b = 20
b := (b - a) / 8 // (20 - (-12)) / 8 ⇒ b = 8
a := b * 2 + 6 // 8 * 2 + 6 ⇒ a = 22
a = 22
5)
a := 7 // a = 7
b := 2 // b = 2
a := b * 4 + a * 3 // 2 * 4 + 7 * 3 ⇒ a = 29
b := 30 - a // 30 - 29 = 1
b = 1
ответ:
. в нужно вывести все составные числа из промежутка [2; n]. код программы:
program lab3;
var i,n,j,s,l: integer;
m: real;
begin
readln (n);
for i: =2 to n do
begin
s: =trunc (sqrt (i));
for l: =2 to s do
begin
m: = i mod l;
if m=0 then
write (' ',i);
end;
end;
end.
но проблема - как только s становится больше 2, составные числа начинают несколько раз повторятся, т.к., например 12 делится и на 2 и на 3. вопрос: как мне сделать выход из цикла после первого успешного деления?
var
i, n, j, s, l: integer;
m: real;
begin
readln(n);
for i : = 2 to n do
begin
s : = trunc(sqrt(i));
for l : = 2 to s do
begin
m : = i mod l;
if m = 0 then
begin
write(' ', i);
break;