var a, b, с: integer;
begin
write('Введите два числа: ');
readln(a, b);
if a < b then с := a + 1 else с := b + 1;
repeat с := с - 1
until (a mod с = 0) and (b mod с = 0);
write('NOD = ', с)
end.
//2. Алгоритм с вычитанием (цикл while)
var a, b: integer;
begin
write('a = ');
readln(a);
write('b = ');
readln(b);
while a <> b do
if a > b then
a := a - b
else
b := b - a;
writeln('NOD = ', a);
end.
Поделитесь своими знаниями, ответьте на вопрос:
Написать программу в C++ Задача. Даны три действительных числа X, Y, Z. Если они попарно различны и их полусумма больше единицы, то заменить меньшее из X и Z полусуммой двух оставшихся значений; в противном случае заменить меньшее из X, Y, Z наибольшим из них. ;)
#include <iostream>
int main()
{
double x, y, z;
double min, max;
std::cin >> x;
std::cin >> y;
std::cin >> z;
if (((x != y) && (x != z) && (y != z))
&&
((x + y + z) / 2 > 1))
{
if (x < z)
x = (z + y) / 2;
else
z = (x + y) / 2;
}
else
{
min = x, max = x;
if (y < x) min = y;
if (z < x) min = z;
if (y > x) max = y;
if (z > x) max = z;
if (x == min)
{
if (y == max) x = y;
else if (z == max) x = z;
}
else if (y == min)
{
if (x == max) y = x;
else if (z == max) y = z;
}
else if (z == min)
{
if (x == max) z = x;
else if (y == max) z = y;
}
}
return 0;
}