Как написать в одну строку метод, который проверяет, является ли число простым или не входит в диапазон чисел? Возвращаемое значение представляет собой список простых/не всех чисел в диапазоне.
Пример вывода:
[“prime”, “not prime”...”not prime”' ,“prime
]
В чем смысл однострочного ограничения? О каком диапазоне идет речь? 1-(2**12345678-1), очевидно, будет немного сложнее, чем 1-12.
Это может быть то, что вы ищете:
# one line
primes = ["prime" if num > 1 and len([i for i in range(2, int(num / 2+1)) if num % i == 0]) == 0 else "not prime" for num in num_list]
# e.g.
>>> num_list = [1,2,3,4,5,6,7,8,9,10,11]
>>> primes = ["prime" if num > 1 and len([i for i in range(2, int(num / 2+1)) if num % i == 0]) == 0 else "not prime" for num in num_list]
>>> primes
['not prime', 'prime', 'prime', 'not prime', 'prime', 'not prime', 'prime', 'not prime', 'not prime', 'not prime', 'prime']
Понимание внутреннего списка (то есть [i for i in range(2, int(num / 2+1)) if num % i == 0]
) используется для проверки того, есть ли у числа другие факторы, кроме 1
и самого себя.
что ты уже испробовал