发布网友 发布时间:2022-04-24 00:57
共4个回答
热心网友 时间:2022-04-06 00:51
list = [] #存放计算的结果
list1 = [] #存放质数
n = int(input("计算质数2:"))
for i in range(2,n+1): #范围在2-n内
for j in range(2,i):
list.append(i%j)
if 0 not in list:
list1.append(i)
list=[]
print(list1)
正好在研究这个问题,怎么说呢,感觉这个是正解,runoob网站有这个案例,和楼下类似,但是是错的,运行你会发现9、15这类都是质数。而质数都定义,简单来说,就是大于1的自然数,只能被1和自己整除,9、15明显不是。网站的案例,当自然数为9时,此时通过9%2=1判定9为质数,然后第二次循环判定时(此时是9%3=0),此时9又不是质数了。总的来说,但凡像9、15、21这种类型不是质数的奇数,因为第一次都是和2判定无法被整除,所以都会被判定质数。
正确的做法是,将所有取余的结果存入列表,判定其中是否有为0的情况,如果有则不是质数,反之则是。
热心网友 时间:2022-04-06 02:09
from math import sqrt
def is_prime(n):
if n == 1:
return False
for i in range(2, int(sqrt(n))+1):
if n % i == 0:
return False
return True
if __name == "__main__":
for n in range(2,101):
if is_prime(n):
print n
is_prime这个函数百度百科就有的,搬运一下,不用给分:)
热心网友 时间:2022-04-06 03:44
for i in range(2,101):
for j in range(2,i):
if i % j == 0:
break
else:
print(i,end=" ")
热心网友 时间:2022-04-06 05:35
随便哪里都有
不会网上搜嘛?