Информатика, программирование ( python ) - Компьютерные вопросы

Вопрос Информатика, программирование ( python )

Регистрация
29 Окт 2013
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Напишите программу, которая проверит, делится ли введённое число на какое-то целое, не превышающее 9. Если делится, то выведите наибольшее из таких чисел. Если не делится (деление на 1 и само число не считается), то выведите -1.





Пример 1:

Ввод 9 Вывод 3





Пример 2 :

Ввод 5 Вывод -1





Примечания :

В задаче нельзя использовать циклы.
 
Регистрация
1 Сен 2012
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
Блин а я только из питона знаю команду hello world и все там сложно а я хочу игры создавать уже
 
Регистрация
2 Авг 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
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) Вторая строчка это и не цикл вовсе... Это генератор списка
 
Регистрация
9 Авг 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Только рекурсия - без каких-либо намёков даже на неявные циклы: 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)

print(get_divisors(int(input())))
 
Сверху Снизу