#题目:判断101-200之间有多少个素数,并输出所有素数。
#程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math
def perfect(m, n): #m>n
count = 0
for i in range(n):
if m%n == 0:
count += 1
return count
for i in range(101, 200):
s = int(math.sqrt(i))
c = 0
if perfect(i, s) != 0:
continue
else:
print(i)
c += 1
print("一共有{}个素数".format(c))
输出结果不正确,想不明白是什么原因。。。再努力想想。。。。
更新:
函数定义的地方错了:需要从2开始:
#题目:判断101-200之间有多少个素数,并输出所有素数。
#程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import math
def perfect(m, n): #m>n
count = 0
for i in range(2,n+1):
if m%i == 0:
count += 1
return count
c=0
for i in range(101, 200):
s = int(math.sqrt(i))
if perfect(i, s) != 0:
continue
else:
print(i)
c += 1
print("一共有{}个素数".forma