Python Проблема метода Is_Prime. Мне нужно для L oop с этим, и поэтому он может распечатать его без печати в функции - PullRequest
0 голосов
/ 21 января 2020

Инструкции: создайте метод с именем is_prime, который получает число в качестве параметра. Метод должен вернуть True, если число простое, или False, если число не простое. Метод не должен делать никакой печати. Проверьте метод, используя для l oop, чтобы проверить серию не менее 10 чисел. Вам не нужно каждый раз увеличивать l oop на 1.

Справочная информация: число является простым, если оно делится только на 1 и само по себе. Например, 7 и 11 простые. 6, 21, 100 НЕ являются простыми числами.

Алгоритм нахождения простого числа. Лучший подход состоит в том, чтобы проверить, не является ли число НЕ ПЕРВИЧНЫМ. Если этот тест не пройден, то число простое. для делителей от 2 до целого (квадрат root нашего числа) + 1, если число, деленное на делитель, не имеет остатка, то число не простое

, если для l oop заканчивается и число не было объявлено "не простое", тогда число простое

Чтобы найти квадрат root числа: import math # помещается в верхнюю часть файла math.sqrt (num) # возвращает квадрат root из num

Пример выходных данных: 2 - простое число 3 - простое число 4 - не простое число 5 - простое число 6 - не простое число 7 - простое число 8 - не простое число 9 - не простое число 9 - не простое число 10 - не простое число 11 - простое число 12 не является простым

Это код:

import math

def is_prime(num):
  #max_divisor = int(math.sqrt(num))
  if num < 2:
    return False

  else:
    for x in range (2, int(math.sqrt(num)) + 1):
      if num % x == 0:
        return False
  return True

def execute():
  if is_prime == True:
    print( is_prime , "is prime")
  else:
    print( is_prime,"is not prime")

is_prime(3) 
execute()

1 Ответ

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

if is_prime == True: не вызывает функцию. Он просто проверяет, содержит ли переменная is_prime, которая именует функцию, значение True.

. Используйте for l oop для многократного вызова функции с разными номерами.

def execute():
    for i in range(1, 20):
        if is_prime(i):
            print(i, "is prime")
        else:
            print(i, "is not prime")
...