Использование функций при нахождении делителей

Есть задание по Питону: Напишите функцию, которая принимает целое число (предварительно полученное от пользователя) и выводит на экран значения его делителей до 10. Например, для 6 будет вывод: 2, 3, 6; а для 20 будет вывод: 2, 4, 5, 10.

Формат вывода: "is divisible by: n", где n -- соответствующий делитель. Выводите каждый делитель в отдельной строке.

Сделать это нужно без цикла, использования массивов, словарей, списков. Это реально? Никакой код я не написала, так как не представляю как это реализовать. Заранее благодарю за подсказки.


Ответы (3 шт):

Автор решения: Oopss
def f(n,count=2):
    if n==count:
        return None
    else:
        if n%count == 0:
            print(f'{n} is divisible by: {count}')
        return f(n,count+1)
f(int(input('Введите целое число  ')))

По предложению @CrazyElf, можно рассмотреть еще один вариант:

n = int(input())
print(*filter(lambda x: x if n % x == 0 else None, range(2, n)),sep='\n')
→ Ссылка
Автор решения: Tory

Вот такой вариант работает так, как от меня просят:

num = int(input())

def div(num, count=2):
    if num + 1 == count:
        return count
    else:
        if count > 10:
            return
        if num % count == 0:
            print("is divisible by:", count)
        return div(num, count + 1)

div(num)

Вывод:

is divisible by:  2
is divisible by:  4
is divisible by:  5
is divisible by:  10

Всем спасибо за подсказки!

→ Ссылка
Автор решения: Danis

А зачем тут вообще циклы? можно просто прописать все числа до 10 в коде (если я, конечно, правильно понял задачу):

def f(n):
    if n % 2 == 0:
        print(...)
    if n % 3 == 0:
        print(...)
    # И так далее до 10
→ Ссылка