Top.Mail.Ru
Ответы
Аватар пользователя
7лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Как работает метод isPrime для поиска простых чисел на python 3?

def isPrime(n):
if n % 2 == 0:
return n == 2
d = 3
while d * d <= n and n % d != 0:
d += 2
return d * d > n

вот сам метод, но мне не понятно что куда вставить, чтобы мне выдавало простое входное число или нет. Это просто система проверки, как её впихнуть в программу??

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

это функция, возвращающая True если ей на вход передано простое число, и False если нет
https://ideone.com/Ir0wHv

работает просто. сразу отметает все четные числа: двойка - простое число, остальные четные заведомо непростые.
далее проверяет, делится ли число на нечетные числа 3,5,7...sqrt(n) дальше проверять нет смысла, потому, что если n и делится на такое число, то оно так же обязано делиться и на число < sqrt(n), но все такие делители к этому моменту уже проверены.
если n не делится ни на одно из таких чисел - оно простое
стоит также отметить, что функция будет неправильно работать в случае n < 2, но это и не требуется - числа меньше 2 по определению не простые и не составные

Аватар пользователя
Оракул
7лет

Я в этой программе не вижу определение простых чисел. Могу предложить такую