Python:列出输入数之前存在的所有素数 n=int(原始输入(“数字”) 对于范围(2,n+1)内的x: 对于范围(2,x+1)内的y: 如果x0且x%3.0>0且x%y>0: 打印x x=x+1
你好。我需要创建一个简单的python程序,它列出了输入数之前的所有素数。例如,如果您输入10,它将生成2、3、5、7 我宁愿保持简单,也不要使用更高级的功能,如def、break。首选嵌套循环 上面的代码不起作用,它包含非素数,如25和91Python:列出输入数之前存在的所有素数 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),坚持整数数学。这在这里可能无关紧要,但有可能打开一大罐蠕虫。
请帮忙 如果一个数
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