题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:在一般领域,对正整数n,如果用2到
之间的所有整数去除,均无法整除,则n为质数。 质数大于等于2 不能被它本身和1以外的数整除
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
---------------------------------------------------
File Name: python练习100——【012】素数
Description: python practice
Author: zhangzx
Date: 2020-12-12
---------------------------------------------------
Change Activity:
2020-02-19
---------------------------------------------------
"""
# 解法一:C++思维
print("解法一:")
aa=[]
for i in range(100, 200):
for j in range (2, i):
if i%j==0:
break
else:
if j == i-1:
aa.append(i)
print("总的素数有: %s 个!"%len(aa))
print("他们分别为:\n" + str(aa) + '\n')
# 解法二:
print("解法二:")
# 判断素数
from math import sqrt
def is_sushu(num):
if num == 1:
return False
for i in range(2, int(sqrt(num))+1):
if num % i == 0:
return False
return True
# 打印范围内的素数
sushu = []
for j in range(100, 200):
a = is_sushu(j)
if a == True:
sushu.append(j)
continue
print("总的素数有: %s 个!"%len(sushu))
print("他们分别为:\n" + str(sushu))
---------------------------以下是输出-----------------------------
解法一:
总的素数有: 21 个!
他们分别为:
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
解法二:
总的素数有: 21 个!
他们分别为:
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]