python求100以内的素数

请问这段程序有什么问题,大神们帮忙改一下

i = 2

print '200以内的素数为'

while i < 200:

    n = 2

    while n <= ( i / n ):

        if not (i % n ):

            break

        n = n + 1

    if ( n > i / n):

        print i,

    i = i + 1

这是我写的python找素数的代码,python版本位2.7.8

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-04-12
质数又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数,如:2、3、5、7、11、13、17、19。
方法1、
#!/usr/bin/python
# -*- coding:UTF-8 -*-
num=[];
i=2
for i in range(2,100):
j=2
for j in range(2,i):
if(i%j==0):
break
else:
num.append(i)
print(num)
方法2、
import math
def func_get_prime(n):
return filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if
x%i ==0],range(2,n+1))
print func_get_prime(100)
输出结果为:
[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]