用python语言输出100以内所有素数

如题所述

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的情况,如果有则不是质数,反之则是。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-01-20
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这个函数百度百科就有的,搬运一下,不用给分:)

追问

这个是python语言吗,怎么这么复杂

本回答被网友采纳
第2个回答  2019-07-16
for i in range(2,101):
for j in range(2,i):
if i % j == 0:
break
else:
print(i,end=" ")
第3个回答  2018-01-20
随便哪里都有

不会网上搜嘛?
相似回答