python中如何编程求1到100之间的素数

如题所述

#!/usr/bin/python

#-*- coding:UTF-8 -*-

#求素数

list=[]

i=2

for i in range (2,100):

    j=2

    for j in range(2,i):

        if(i%j==0):

            break

    else:

        list.append(i)

print(list)

扩展资料:

python:for语句的使用方法

for循环的语法格式:

for i in range(n):#从数据类型中拿一个值赋值给i

    print(i)#打印i

例如:

#for

for i in range (1,6,2):#从一开始到六之前每隔上2个数字

    print(i)#结果为1,3,5

# ------------------------------------------------

s = ["man", "woman", "girl", "boy", "sister"]

for i in s:#列表s中的每个元素给i

    print(i)

#-------------------------------------------------

for i in range(5):

    print(i)#结果为:0,1,2,3,4

for循环实例:数字0,1,2组成一个百位数,并且数字不重复!

#for

for i in range(0,3):

    for j in range(0,3):

        for k in range(0,3):

            if (i != 0) and (i != j) and (i != k) and (j != k):

                print (i,j,k)

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-30
#!/usr/bin/python27
# coding:utf8
'''
100以内的质数(素数)
'''
l = []
for n in range(1,101):
if n == 1:
continue
elif n == 2:
l.append(2)
else:
if 0 not in [n%i for i in range(2,n)]:
l.append(n)
print l

运行结果:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

本回答被提问者采纳
第2个回答  2014-12-29
看你要不要考虑效率了,不考虑效率最简单的就是双层循环试呗,100以为的话,这笨办法也不慢,哈哈追问

我试了,可出问题,能帮我弄下吗😊

它输出时,一个数要输出好多遍,为什么啊

追答

可以发上你的代码嘛,我帮你看看

本回答被网友采纳
第3个回答  推荐于2017-09-16
def primes(x):
    # prepair data space
    plist = [0, 0] + range(2,x+1)
    for i in xrange(2, x):
        if plist[i]:
            plist[i+i::i] = [0] * len(plist[i+i::i])
    return filter(None, plist)

print primes(100)

筛选法是高效的素数列表计算算法, python的列表切片赋值可以极大地简化代码

第4个回答  2019-05-23
num=[]
for i in range(2,101):
    if 0 not in [i%j for j in range(2,i)]:
        num.append(i)
print(num)

相似回答