在for循环中编码排除(python)

时间:2016-03-23 15:19:11

标签: python loops for-loop

我试图找出如何在我的程序中排除某些数字(不是素数的数字)。例如,我不希望打印15,所以我使用模数排除可被5整除的数字,但这消除了5,这是一个素数。任何有关如何编码的帮助将是巨大的帮助!谢谢......

start = int(input("Start number: "))
end = int(input("End number: "))

while start < 0 or end < 0:
    print ("Start and end number must be positive. Try again.")
    start = int(input("Start number: "))
    end = int(input("End number: "))

while start > end:
    print ("End number must be greater than start number. Try again.")


for x in range (start, end):
    is_prime = True

for x in range (start, end):
    trial = x % 2
    trial1 = x % 5
    trial2 = x % 3
    if trial != 0 and trial1 != 0 and trial2 != 0:
        print (x, "is a prime number")
        x = x + 1
    else:
        is_prime = False

3 个答案:

答案 0 :(得分:0)

您可以创建一个要在循环中使用的数字列表,让我们将其称为loop_list,然后只需使用loop_list中的x,即可避免设置排除项

答案 1 :(得分:0)

如果你想确定N是素数,你必须检查所有数字到平方根(N),如果N%数!= 0。

您在寻找优化吗?如果不是,你只需要它。

答案 2 :(得分:0)

你可以尝试这个素数逻辑: -

def check_prime(num):
    notPrimeFlag = 'N'
    for i in range(2, num):
        if num % i == 0:
            notPrimeFlag = 'Y'
            break
    if notPrimeFlag == 'N':
        print("Prime number")