begin Write('Введите через пробел два целых положительных числа- '); Readln(m, n); {Сначала ищем НОК - наименьшее общее кратное} if m = n then begin nok := m; t := m * m end else begin t := m * n; repeat if m > n then m := m - n else n := n - m until m = n; nok := t div m end; {Теперь умножаем НОК на числа натурального ряда, пока не дойдем до величины t=m*n} if nok = t then Writeln('Требуемых чисел нет') else begin i := 1; while (nok * i < t) do begin Write(nok * i, ' '); i := i + 1 end end end.
Тестовое решение: Введите через пробел два целых положительных числа- 8 120 120 240 360 480 600 720 840
Введите через пробел два целых положительных числа- 35 620 4340 8680 13020 17360
Введите через пробел два целых положительных числа- 7 13 Требуемых чисел нет
VAR k: String; BEGIN Read(k); if (Length(k) = 3) then Write(k, ' - 3-ное число) else Write(k, ' - не 3-ное число'); END.
VAR a,b,c: LongInt; BEGIN Read(a, b, c); If (a <= b)and(a <= c) then Write(a) else (b <= a)and(b <= c) then Write(b) else Write(c); END.
VAR a,b,c: LongInt; BEGIN Read(a, b, c);
if (a = b) then Writeln(a, ' ', b, ' - взаимно противоположные числа'); if (a = c) then Writeln(a, ' ', c, ' - взаимно противоположные числа'); if (b = c) then Writeln(c, ' ', b, ' - взаимно противоположные числа'); END.
VAR a,b,c,d: Real; BEGIN Read(a, b, c, d);
if (a = b)and(b = c)and(c = d) then Write('Ромб') else Write('Не ромб'); END.
Для начала задачу нужно решить чисто математически, решения приведены на листочках. Поскольку задача школьная, то вариант совпадения точек не рассматривается Алгоритмического языка не знаю, но поскольку это вариант псевдокода, то думаю алгоритм вполне понятен
алг Круг_по_двум_точкам_и_радиусу(арг действ Ax, арг действ Ay, арг действ Bx, арг действ By, арг действ r) дано | A,B,r надо | нарисовать окружность нач ввод Ax, Ay, Bx, By, r
действ dAB = ((Ax - Bx)^2 + (Ay - By)^2)^(0.5) // длина АВ действ h = (r^2-dAB^2/4)^(0.5) // высота и длина вектора ОМ
// М середина АВ действ Mx = (Ax + Bx) / 2 действ My = (Ay + By) / 2
//первый круг действ Ox = Mx + (Ay - By) * h/dAB действ Oy = My - (Ax - Bx) * h/dAB нарисовать_круг(Ox, Oy, r)
//второй круг Ox = Mx - (Ay - By) * h/dAB Oy = My + (Ax - Bx) * h/dAB нарисовать_круг(Ox, Oy, r) кон
m, n, nok, t, i: longint;
begin
Write('Введите через пробел два целых положительных числа- ');
Readln(m, n);
{Сначала ищем НОК - наименьшее общее кратное}
if m = n then begin
nok := m;
t := m * m
end
else begin
t := m * n;
repeat
if m > n then m := m - n else n := n - m
until m = n;
nok := t div m
end;
{Теперь умножаем НОК на числа натурального ряда,
пока не дойдем до величины t=m*n}
if nok = t then Writeln('Требуемых чисел нет')
else begin
i := 1;
while (nok * i < t) do
begin
Write(nok * i, ' ');
i := i + 1
end
end
end.
Тестовое решение:
Введите через пробел два целых положительных числа- 8 120
120 240 360 480 600 720 840
Введите через пробел два целых положительных числа- 35 620
4340 8680 13020 17360
Введите через пробел два целых положительных числа- 7 13
Требуемых чисел нет