是的,我知道有很多这样的东西,而且我的问题可能已经在我未曾见过的地方得到了回答。但是,我仍然有困难,不确定该怎么做。
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。
答案 0 :(得分:0)
您误解了python的运算符:
如此处所指出:https://docs.python.org/3/reference/expressions.html#binary-bitwise-operations
&运算符&产生其参数的按位与,必须为整数。
您应该使用的是“和”逻辑运算符。
您应该关心的另一件事是运算符优先级:https://docs.python.org/3/reference/expressions.html#operator-precedence
关于代码的逻辑,只要发现新的质数,您就可以使用它们以更快的速度(更少的步骤)进行除(执行模运算),因为每个数都可以分解为质因数乘积。我不给你一个例子,因为我不知道你想达到什么目的,如果你给我一个例子,我可以做到。