Проблемы с простым числом - PullRequest
0 голосов
/ 24 января 2020

Я начал изучать python, и сегодня я написал этот код, чтобы найти простые числа:

def is_prime(number):
    status = True
    for i in range(2, number):
        if number % i == 0:
            status = False
            break
        return status

Он работает, но не определяет число 2 как простое число. Может кто-нибудь сказать мне, в чем моя проблема? Почему он возвращает значение «Нет» для 2?

Ответы [ 3 ]

0 голосов
/ 24 января 2020

Ваш range должен быть range(2, number+1). В противном случае, при вводе number=2 l oop вообще не выполняется, поскольку range(2, 2) пусто:

>>> list(range(2, 2))
[]
>>> list(range(2, 3))
[2]
0 голосов
/ 24 января 2020

Ваша программа возвращает пустую функцию дальности. пожалуйста, попробуйте то же самое

Вы должны были добавить оператор else,

for i in range(2,num):
     if (num % i) == 0:
        return False

else:
           return True
0 голосов
/ 24 января 2020

Я бы соблазнился покончить с перерывом и форматировать примерно так:

def is_prime(number):
    for i in range(2, number):
        if number % i == 0:
            return False
    return True
...