Python:列出输入数之前存在的所有素数 n=int(原始输入(“数字”) 对于范围(2,n+1)内的x: 对于范围(2,x+1)内的y: 如果x0且x%3.0>0且x%y>0: 打印x x=x+1

Python:列出输入数之前存在的所有素数 n=int(原始输入(“数字”) 对于范围(2,n+1)内的x: 对于范围(2,x+1)内的y: 如果x0且x%3.0>0且x%y>0: 打印x x=x+1,python,loops,numbers,nested,Python,Loops,Numbers,Nested,你好。我需要创建一个简单的python程序,它列出了输入数之前的所有素数。例如,如果您输入10,它将生成2、3、5、7 我宁愿保持简单,也不要使用更高级的功能,如def、break。首选嵌套循环 上面的代码不起作用,它包含非素数,如25和91 请帮忙 如果一个数x不能被至少一个y整除,那么您的代码得出结论,认为它是素数,而它需要检查它是否不能被所有y整除 您还需要仔细检查y循环的边界 另一方面,我建议您放弃浮点计算(例如,x%2.0),坚持整数数学。这在这里可能无关紧要,但有可能打开一大罐蠕虫。

你好。我需要创建一个简单的python程序,它列出了输入数之前的所有素数。例如,如果您输入10,它将生成2、3、5、7

我宁愿保持简单,也不要使用更高级的功能,如def、break。首选嵌套循环

上面的代码不起作用,它包含非素数,如25和91


请帮忙

如果一个数
x
不能被至少一个
y
整除,那么您的代码得出结论,认为它是素数,而它需要检查它是否不能被所有
y
整除

您还需要仔细检查
y
循环的边界


另一方面,我建议您放弃浮点计算(例如,
x%2.0
),坚持整数数学。这在这里可能无关紧要,但有可能打开一大罐蠕虫。

你必须改变你的想法。只要数字不是某个y的倍数,代码就会报告该数字。相反,当某个数字是某个y的倍数时,您应该不报告该数字

n= int(raw_input("Number? "))
for x in range (2, n+1): 
    for y in range (2, x+1):
    if x < n+1 and x % 2.0 > 0 and x % 3.0 > 0 and x%y > 0:
            print x
            x = x + 1  

精确复制:为什么它要工作?只要不是2或3的倍数,您就可以打印数字!我明白你的意思。问题是,我不知道如何修复它。不,这不是复制品。我不允许在Python中使用任何高级函数。我只能使用while-loop、for-loop、isprime、math.sqrt等函数。不要对我大喊大叫,关于复制的评论来自其他人。
n= int(raw_input("Number? "))
for x in range (2, n + 1):
    prime= True
    for y in range (2, x):
        if x % y == 0:
            prime= False
    if prime:
        print x