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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы