Проверьте, является ли число простым числом, считая нулевые остатки - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь написать программу, которая проверяет, является ли число простым числом.

То, как я уже знаю: проверьте, есть ли какое-либо из чисел, , исключая само число и 1, дает напоминание о нуле.

Способ, которым я хочу попробовать: Проверьте, не дают ли более двух чисел, , включая 1 и самого числа, напоминание нуля:

n=10
for a in range(1,n+1):
   x=n%a
   if (x == 0):
   print x

Я получаю количество случаев, когда напоминание равно нулю с указанным кодом. Я хочу определить логику таким образом, чтобы, если число нулей в выводе было больше 2, тогда число не простое, иначе число простое. (Ожидается, что введенный номер больше 1.)

1 Ответ

1 голос
/ 19 июня 2019

Я думаю, что люди сбиты с толку и избегают этого, так как это не эффективный способ проверки простых чисел.Обычно мы хотим дисквалифицировать число как можно быстрее и проще, избегая каких-либо дополнительных делений.

Однако, если это то, что вы хотите, вот реализация:

def is_prime(n):
    '''
    I want to define the logic in such that if the number 
    of zeros is greater than 2 in the output, then the number
    is not prime, else the number is prime
    '''

    return sum(n % divisor == 0 for divisor in range(1, n + 1)) <= 2

# Expecting that the input number is greater than 1
for n in range(2, 100):
    if is_prime(n):
        print(n)
...