Please!!!! Помогите решить задачу и объясните на словах суть алгоритма! Напишите в ответе количество различных значений входной переменной a из интервала от 1 до 100 (включая границы), при которых программа выдаёт тот же ответ...
Please!!!! Помогите решить задачу и объясните на словах суть алгоритма!
Напишите в ответе количество различных значений входной переменной a из интервала от 1 до 100 (включая границы), при которых программа выдаёт тот же ответ, что и при входном значении a = 20. Значение a = 20 также включается в подсчёт различных значений a.
var i, k, a: integer;
function f(x: integer; y: integer): integer;
begin
if x = y then
f := x else
if x > y then f := f(x - y, y)
else f := f(x, y - x);
end;
begin
k := 0;
readln(a);
for i := 1 to a do
if f(i, 4) = 2 then k := k + 1;
writeln(k);
end.
Ответ(ы) на вопрос:
Гость
В функции f определяется наибольший общий делитель (НОД) чисел x и y. В основной программе подсчитывается количество чисел из диапазона [1,a], у которых НОД(i,4)=2. При a=20 это количество = 5 (числа 2, 6, 10, 14, 18). Значение 5 получится, таким образом, если а будет = 18, 19, 20, 21. Всего 4 значения.
Ответ: 4
Не нашли ответ?
Похожие вопросы