Я возвращаюсь в Python через некоторое время в Javascript. В настоящее время я пытаюсь написать функцию, которая проверяет набор чисел, чтобы увидеть, если они простые.

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

def first_100_prime_numbers():
    for prime in primes:
        if (prime > 2) & (prime % 2 != 0):
            return primes

def test():
    primes = set([2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541])

    if set(first_100_prime_numbers()) == primes:
        print("Correct.")
    else:
        print("Answer is wrong. Keep trying!")

test()
0
Kevin Hebert 24 Сен 2018 в 17:53

2 ответа

Лучший ответ

Перво-наперво

a & b выполняет побитовый оператор "and" между a и b. Вы уверены, что хотите использовать там побитовый оператор? Чтобы применить логический оператор «и» между a и b, вам необходимо использовать a and b. Взгляните на этот справочник.

Проверить отступ

Я попытался запустить ваш код с исправлениями, предложенными @SuperStew, и он сработал, как ожидалось, напечатав «Правильно». на консоли. Я также заметил, что ваш код неверен, и отредактировал его. Может, в этом и была проблема.

Последний, но тем не менее важный

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

0
Hemerson Tacon 24 Сен 2018 в 15:29

Ну, в этой строке вам нужно привести некоторые аргументы

def first_100_prime_numbers():

Должно быть как

def first_100_prime_numbers(primes):

И не забудьте передать что-то, когда вы это называете

if set(first_100_prime_numbers(primes)) == primes:
0
SuperStew 24 Сен 2018 в 14:56