Напишите программу, которая проверит, делится ли введённое число на какое-то целое, не превышающее 9. Если делится, то выведите наибольшее из таких чисел. Если не делится (деление на 1 и само число не считается), то выведите -1.
n = 56
r = [n / i for i in range(2, n - 1)]
rr = list(filter(lambda x: float(x) == int(x) and x < 10, r))
if rr:
print(int(max(rr)))
else:
print(-1) Вторая строчка это и не цикл вовсе... Это генератор списка
Только рекурсия - без каких-либо намёков даже на неявные циклы: def get_divisors(n, cur=9):
if cur <= 1: return -1
if n != cur and n % cur == 0: return cur
return get_divisors(n, cur - 1)