Паскаль. Вычисляет НОД для любого кол-ва чисел
Объяснение:
function Nod(a,b:integer):integer;{определение НОД двух чисел}
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
Nod:=a;
end;
var
a: array of integer;
n, i: integer;
k: integer;
begin
WriteLn('*** Определение НОД нескольких чисел ***');
Write('Введите кол-во чисел N = '); ReadLn(n);
SetLength(a, n + 1);
WriteLn('Введите числа: ');
for i := 1 to n do
begin
Write(i,'-e число: '); ReadLn(a[i]);
end;
WriteLn;
k := Nod(a[1], a[2]);
for i := 3 to n do k := nod(k, a[i]);
WriteLn('Общий НОД всех чисел = ', k);
end.
from math import ceil
a = input()
a = a.split(' ') # ['N'], ['K'], ['M'], ... , ['Z']
SK = (int(a[1])/100)*int(a[4])
SM = (int(a[2])/100)*int(a[5])
SPP = (int(a[3])/100)*int(a[6])
if SK >= SM and SK >= SPP:
K = int(a[1]) - SK
M = int(a[2])
P = int(a[3])
N = int(a[0]) - (K + M + P)
elif SM >= SPP:
K = int(a[1])
M = int(a[2]) - SM
P = int(a[3])
N = int(a[0]) - (K + M + P)
else:
K = int(a[1])
M = int(a[2])
P = int(a[3]) - SPP
N = int(a[0]) - (K + M + P)
if N < 0:
print(-1)
else:
print(ceil(N))
Объяснение:
Не полный ответ, но ра РЭ 20б. получишь
55
Объяснение:
Данный фрагмент кода предназначен для подсчета суммы чисел от 1 до 10. Цикл while в нем выполняет последовательность команд до тех пор, пока проверяемое условие истинно (i <= n).
Первая итерация:
sum = 0 + 1 = 1
i = 1 + 1 = 2
Вторая итерация:
sum = 1 + 2 = 3
i = 2 + 1 = 3
Третья итерация:
sum = 3 + 3 = 6
i = 3 + 1 = 4
И так далее. Всего итераций будет 10, так как при i > n цикл прекращает выполнение команд.
Таким образом, после 10 итераций переменная sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
program HomeWork;
var a,b,c: integer;
begin
write('Введите два целых числа через пробел: '); readln(a, b);
c := a mod b;
while c <> 0 do
begin
a := b;
b := c;
c := a mod b;
end;
write(b)
end.