К ним элементарно определению школы, простых чисел определяются для положительных чисел только, что ваша функция должна возвращать False
для каждого отрицательного числа, например:
def isprime(x):
if x <= 0:
return False
for a in range(2, (x//2)+1):
if x % a == 0:
return False
return True
Это, как говорится, можно расширить определение (как это сделано в некоторых полях в математике), включить также отрицательные числа (для дальнейшего обсуждения см. here и here). В этом случае для каждого отрицательного числа -n, -n является простым, если n является простым. Поэтому ваш код может быть примерно таким:
def isprime(x):
if x <= 0: # or use any |abs| method you'd like, like numpy's
x = -x
for a in range(2, (x//2)+1):
if x % a == 0:
return False
return True
Кто-нибудь, пожалуйста, помогите –
, когда я попытался вызвать функцию, передав отрицательные значения, она всегда возвращает true. –
Во-первых, условие должно не работать при проверке x <= 0 и должно возвращать значение false. Но функция возвращает true. –