Рубрики

Программа Python для сита Эратосфена

Учитывая число n, выведите все простые числа, меньшие или равные n. Также дано, что n — небольшое число.
Например, если n равно 10, вывод должен быть «2, 3, 5, 7». Если n равно 20, выходное значение должно быть «2, 3, 5, 7, 11, 13, 17, 19».

# Программа Python для печати всех простых чисел, меньших или равных
# n используя сито эратосфена

  

def SieveOfEratosthenes(n):

      

    # Создайте логический массив "prime [0..n]" и инициализируйте

    # все записи это как правда. Значение в простом [i] будет

    # в конечном итоге быть ложным, если я не простое число, иначе верно.

    prime = [True for i in range(n + 1)]

    p = 2

    while (p * p <= n):

          

        # Если простое число [p] не изменилось, то это простое число

        if (prime[p] == True):

              

            # Обновить все кратные р

            for i in range(p * 2, n + 1, p):

                prime[i] = False

        p += 1

    prime[0]= False

    prime[1]= False

    # Распечатать все простые числа

    for p in range(n + 1):

        if prime[p]:

            print p,

  
# драйверная программа

if __name__=='__main__':

    n = 30

    print "Following are the prime numbers smaller",

    print "than or equal to", n

    SieveOfEratosthenes(n)

Выход:

Following are the prime numbers below 30
2 3 5 7 11 13 17 19 23 29

Пожалуйста, обратитесь к полной статье о сите Эратосфена для более подробной информации!

Рекомендуемые посты:

Программа Python для сита Эратосфена

0.00 (0%) 0 votes