# Код на ruby 2.2.3p173 def zadanie(jump1, jump2) min = jump1 for i in 1..1000 next if (i*jump1)%jump2 == 0 or (i*jump2)%jump1 == 0
if min > (i*jump1)%jump2 min = (i*jump1)%jump2 p [min, "#{i} * #{jump1} - #{i*jump1/jump2} * #{jump2}"] end
if min > (i*jump2)%jump1 min = (i*jump2)%jump1 p [min, "#{i} * #{jump2} - #{i*jump2/jump1} * #{jump1}"] end end return min end # # Примеры применения p zadanie(33, 55)
( Решение на Pascal )
Не совсем ясно, каким образом составители задачи планировали найти среди случайных вещественных 10 чисел в диапазоне от -60 до 100 числа, кратные 8.
Но ради Бога:
var A: array [1..10] of real;
var i,s: integer;
begin
s:=0;
randomize();
for i:=1 to 10 do
begin
A[i]:=random()*160-60;
write(A[i]:3:5,' ');
if (A[i]>10) and (A[i]-trunc(A[i])=0)
and (trunc(A[i]) mod 8 =0) then
s:=s+1;
end;
writeln();
writeln('Количество элементов массива,',
'кратных числу 8 и больших 10: ',s);
end.
def zadanie(jump1, jump2)
min = jump1
for i in 1..1000
next if (i*jump1)%jump2 == 0 or (i*jump2)%jump1 == 0
if min > (i*jump1)%jump2
min = (i*jump1)%jump2
p [min, "#{i} * #{jump1} - #{i*jump1/jump2} * #{jump2}"]
end
if min > (i*jump2)%jump1
min = (i*jump2)%jump1
p [min, "#{i} * #{jump2} - #{i*jump2/jump1} * #{jump1}"]
end
end
return min
end
# # Примеры применения
p zadanie(33, 55)
Вывод
[22, "1 * 55 - 1 * 33"]
[11, "2 * 33 - 1 * 55"]
11
Т.е. минимум при 2 * 33 - 1 * 55 = 11