python程序作业,,急急急

用for循环或者while循环,输出2到200之内所有的素数。提示:方法一: 1)将判断某个数是否是素数,实现成一个函数 2)用循环,遍历2到200之内的每一个数,遍历时,调用判断是否是素数的函数。 方法二:用二重循环来实现。

def isPrime(num):
for i in range(2,num-1):
if(num%i==0):
return 0
return 1

def fun1():
for i in range(2,200):
if(isPrime(i)):
print("%d is prime number." %(i))



def fun2():
for i in range(2,200):
isp=0
for j in range(2,i-1):
if(i%j==0):
isp=1
if(isp==0):
print("%d is prime number." %(i))

if __name__=="__main__":
print("选择菜单进行操作:\n1、方法一\n2、方法二")
n=input()
if(n=='1'):
fun1()
if(n=='2'):
fun2()

 用python3写的,如果你用的是2,部分语法要改改才行

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-30
>>> filter(lambda x:all(x%i!=0 for i in range(2,x)),range(2,201))
[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, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]

第2个回答  2013-10-30
from math import sqrt
[x for x in range(2,200) if 0 not in [ x % i for i in range(2,int(sqrt(x))+1)]]

第3个回答  2013-10-30
import math

def is_prime(num):
    if num < 2: return False
    m = int(math.sqrt(num))
    for i in range(2, m+1):
        if not num % i: return False
    return True
    
for i in range(2, 200):
    if is_prime(i): print i