Ответ:
chislo1 = int(input("Введите число а "))
chislo2 = int(input("Введите число b "))
while chislo1 != 0 and chislo2 != 0:
if chislo1 > chislo2:
chislo1 = chislo1 % chislo2
else:
chislo2 = chislo2 % chislo1
print(chislo1 + chislo2)
Объяснение:
НОД числа:
берутся два числа. большее число = остаток от деления большего на меньшее. Затем опять большее число (может быть уже второе) = остаток от деления большего на меньшее, и так до тех пор, пока одно из них не станет равно 0. И выводится большее число. В случае если числа равны друг другу, находится остаток от деления второго числа на первое: 0, и выводится первое число. Т.е всё работает.
Сами значения вычислить понятно как. Пусть будет шаг h:=0.1
var a, b, h, x, y: real
BEGIN
a := -10; b := 10; h := 0.1;
x := a;
while (x <= b) do
begin
y:=1/(x*x*x);
Draw(x, y); // Это подпрограмма рисования точки с координатами (x, y)
x:= x+h;
end;
END.
А вот как в паскале рисовать на экране, я не знаю.
Подпрограмму Draw я оставляю ненаписанной.
<em>// PascalABC.NET 3.2, сборка 1383 от 09.02.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
<em>1)</em>
begin
var b:=ArrRandom(ReadInteger('n='),-99,99); b.Println;
var jn:=b.FindIndex(x->x<0); // индекс первого отрицательного
var jm:=b.IndexMax; // индекс первого максимального
Swap(b[jn],b[jm]); b.Println
end.
<u>Пример</u>
n= 15
33 60 -72 13 -15 -36 21 98 -21 -22 56 -20 0 -98 28
33 60 98 13 -15 -36 21 -72 -21 -22 56 -20 0 -98 28
<em>2)</em>
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
a:=a[:4]+Arr(8)+a[4:]; a.Println;
end.
<u>Пример</u>
n= 10
65 56 31 74 -4 -54 43 8 -58 -94
65 56 31 74 8 -4 -54 43 8 -58 -94
1 кбайт=8000 бит, сл. вес сообщения=1928000 бит
1928000\128000=15.0625 сек
101011110
из двоичной в десятичную: 350
536
из восьмеричной в десятичную: 350
15Е
из шестнадцатеричной в десятичную: 350