Python Prime生成器

时间:2018-11-12 13:23:39

标签: python generator primes

是的,我知道有很多这样的东西,而且我的问题可能已经在我未曾见过的地方得到了回答。但是,我仍然有困难,不确定该怎么做。

maximum_range = int(input('How big do you want the range?'));
i = 3;
checkPrime = True;
while (i <= maximum_range):
    y = 2;
    print('i {}'.format(i))
    print('y {}'.format(y))
    halfI = int((i/2)+ 1)
    checkPrime = False;
    while (y <= halfI & checkPrime):
        y += 1
        if (i%y == 0):
            print('{} is not prime because it is divisible by' .format(i))
            checkPrime = False;
    i += 2
    if (checkPrime & y == halfI):
        print('{}s is prime' .format(i))   
    checkPrime = True;

问题是嵌套迭代不起作用,它达到“ here 1”,仅此而已。我还打印了y和i-,它们打印了正确的值,但似乎什么也没做。

非常感谢这些帮助-请耐心等待,我更喜欢Javascript。

1 个答案:

答案 0 :(得分:0)

您误解了python的运算符:

如此处所指出:https://docs.python.org/3/reference/expressions.html#binary-bitwise-operations

  

&运算符&产生其参数的按位与,必须为整数。

您应该使用的是“和”逻辑运算符。

您应该关心的另一件事是运算符优先级:https://docs.python.org/3/reference/expressions.html#operator-precedence

关于代码的逻辑,只要发现新的质数,您就可以使用它们以更快的速度(更少的步骤)进行除(执行模运算),因为每个数都可以分解为质因数乘积。我不给你一个例子,因为我不知道你想达到什么目的,如果你给我一个例子,我可以做到。