Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Библиотека primePy для Python
Вспоминаются те уже далёкие дни, когда на олимпиаде по программированию вполне можно было выложить задачу на генерацию простых чисел. Подобрать тесты, взять оптимизированный алгоритм и указать по нему потолок времени выполнения. И это была бы вполне себе приличной олимпиадной задачей. Но ушли те времена. На всех языках есть библиотеки, которые легко выполнят за вас задачи на типовые алгоритмы. И процент программистов-алгоритмистов стал значительно меньше. А зачем им это? На все случаи жизни есть библиотеки. Я уж не говорю вообще о типовых решениях. Но то ли ещё будет, когда во всей красе придёт в программирование искусственный интеллект. И не будет тогда такой замечательной и высоко-интеллектуальной профессии, как программист. Но, не будем о грустном. А я, "переобувшись", опять начну искушать читателей готовыми библиотеками.
Библиотека primePy как раз о простых числах. Библиотека легко устанавливается с помощью pip3 или pip.
pip3 install primePy
И теперь можно её использовать. Приведу основные возможности библиотеки.
1. Проверить число на простоту
#!/usr/bin/python3
from primePy import primes as p
print(p.check(103))
print(p.check(77))
Результат выполнения
True
False
2. Получить минимальный простой делитель числа
#!/usr/bin/python3
from primePy import primes as p
print(p.factor(63373))
Результат выполнения
127
3. Получить простые множители числа с возможным повтором
#!/usr/bin/python3
from primePy import primes as p
print(p.factors(150))
Результат выполнения
[2, 3, 5, 5]
Это должно быть понятно
150 = 2 * 3 * 5 * 5
4. Получить n первых простых чисел
#!/usr/bin/python3
from primePy import primes as p
print(p.first(10))
Результат выполнения
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
5. Получить все простые числа от 2 до указанного числа включительно
#!/usr/bin/python3
from primePy import primes as p
print(p.upto(101))
Результат выполнения
[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]
6. Получить простые числа в указанном промежутку [a, b] не включая b.
#!/usr/bin/python3
from primePy import primes as p
print(p.between(7, 31))
Результат выполнения
[7, 11, 13, 17, 19, 23, 29]
Кстати поиск
p.between(4294960000, 4294967295)
был выполнен за одну секунду. Моя программа из статьи (см. рисунок 5) дала точно такой же результат.
7. Вовзращает количество целых чисел меньших n, не имеющих общего множителя с n.
#!/usr/bin/python3
from primePy import primes as p
print(p.phi(8))
Результат выполнения
4
Ну, пока всё!
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.