Простой простой генератор в Python - PullRequest
31 голосов
/ 20 февраля 2009

Может кто-нибудь сказать мне, что я делаю не так с этим кодом? В любом случае, это просто печать 'count'. Я просто хочу очень простой простой генератор (ничего особенного).

import math

def main():
    count = 3
    one = 1
    while one == 1:
        for x in range(2, int(math.sqrt(count) + 1)):
            if count % x == 0: 
                continue
            if count % x != 0:
                print count

        count += 1

Ответы [ 22 ]

0 голосов
/ 05 апреля 2011
def check_prime(x):
    if (x < 2): 
       return 0
    elif (x == 2): 
       return 1
    t = range(x)
    for i in t[2:]:
       if (x % i == 0):
            return 0
    return 1
0 голосов
/ 19 марта 2009

Вы можете создать список простых чисел, используя списочные выражения довольно элегантным способом. Взято из здесь:

>>> noprimes = [j for i in range(2, 8) for j in range(i*2, 50, i)]
>>> primes = [x for x in range(2, 50) if x not in noprimes]
>>> print primes
>>> [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
...