Prime Sieve
Найдите все простые числа до заданного предела, используя решето Эратосфена. Визуализируйте простые числа в сетке.
Сетка чисел (простые числа выделены)
Выделено = простое число
Простые числа
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
Об этом инструменте
Решето простых чисел — это математический алгоритм, который эффективно находит все простые числа до указанного предела. Решето Эратосфена, разработанное более двух тысяч лет назад, остаётся одним из самых быстрых методов генерации списков простых чисел и широко используется в криптографии, исследованиях теории чисел и образовании. Этот инструмент привносит классический алгоритм в ваш браузер, позволяя вам интерактивно исследовать распределение и свойства простых чисел.
Чтобы использовать этот инструмент, введите верхний предел диапазона поиска и нажмите кнопку "Найти простые числа". Инструмент мгновенно отобразит все простые числа до этого предела в формате сетки, облегчая визуализацию их частоты и закономерностей. Типичные случаи использования включают проверку простых чисел для образовательных проектов, генерацию простых чисел для криптографических алгоритмов, изучение промежутков между последовательными простыми числами и исследование математических любопытств распределения простых чисел.
Решето Эратосфена работает путём итеративного отмечания кратных каждого простого числа как составных, оставляя только неотмеченные простые числа. Этот метод намного быстрее, чем проверка каждого числа по отдельности на делимость. Для пределов менее одного миллиона вычисление завершается почти мгновенно; большие пределы могут занять несколько секунд в зависимости от вашего устройства. Этот инструмент идеален для учащихся, математиков и всех, кто интересуется фундаментальными строительными блоками теории чисел.
Часто задаваемые вопросы
Реализация кода
def sieve_of_eratosthenes(limit: int) -> list[int]:
"""Return list of all primes up to limit."""
if limit < 2:
return []
is_prime = [True] * (limit + 1)
is_prime[0] = is_prime[1] = False
i = 2
while i * i <= limit:
if is_prime[i]:
for j in range(i * i, limit + 1, i):
is_prime[j] = False
i += 1
return [n for n, p in enumerate(is_prime) if p]
primes = sieve_of_eratosthenes(100)
print(primes)
# [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, ...]
print(f"Count: {len(primes)}") # Count: 25Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.