named divisors/Divisors that takes an integer n > 1 and returns an array with all of the integer's divisors(except for 1 and the number itself), from smallest to largest. If the number is prime return the string '(integer) is prime' (null in C#) (use Either String a in Haskell and Result<Vec<u32>, String> in Rust).
Example:
divisors(12); #should return [2,3,4,6]
divisors(25); #should return [5]
divisors(13); #should return "13 is prime"
Я написал код
integer = int(input('Введите число: '))
def divisors(integer):
while integer > 1:
if integer % range(2, integer) == 0:
return integer
else:
return f'{integer} - is prime'
divisors(integer)
Но неправильно срабатывает строка if integer % range(2, integer) == 0:
Как мне написать правильно так, чтобы соблюдалось правило "если остаток от деления числа на диапазон чисел от 1 до integer (не включая границы) было равно 0, то возвращай эти числа"??
Что, по твоему представлению, будет являться результатом операции 4 % range(2, 4)
должно быть 2
В % нельзя передавать объекты типа range, а только числа
[4 % 2, 4 % 3] или ошибка из-за разных размеров итераблов
'%s' % 'd'
Ладно
Обсуждают сегодня