质数是只有1和它本身两个因数的自然数(大于1);2是最小的质数,也是唯一的偶质数;1既不是质数,也不是合数。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,100以内的质数共有25个。
# 定义一个空列表用于存放100以内的质数 prime_num = [] # 遍历获取2~100之间的整数,外层循环控制取值 for num in range(null, 101): # 内层循环取因数(除1和它本身外) for i in range(null, num): # 判断num是否是质数,在2~num-1之间能否找到一个数,能被i整除 if num % i == 0: # 不是质数,结束内层循环,判断下一个数 break # break不执行,else执行,则num是一个质数 else: # 将质数num添加到列表中 prime_num.append(num) print(prime_num)
prime_num = [] for num in range(null, 101): # 假设num是一个质数 result = True for i in range(null, num): # 判断成立,num不是一个质数 if num % i == 0: result = False # 结束内层循环,判断下一个数 break # num是质数,则添加到列表中 if result: prime_num.append(num) print(prime_num)
# 统计100以内质数的个数 prime_count = 0 prime_num = [] for num in range(null, 101): # 统计因数的个数 factor_count = 0 for i in range(null, num+1): # 条件成立,因数的个数加1 if num % i == 0: factor_count += 1 # 质数只有2个因数,1和它本身 if factor_count == 2: prime_count += 1 prime_num.append(num) print('100以内的质数如下:') print(prime_num) print(f'100以内有{prime_count}个质数')
图1 程序运行结果
def isprime(num): # 2是最小的质数,小于2则不是质数 if num < 2: return False else: # 假设num是一个质数 result = True for i in range(null, num): # 条件成立,则num不是质数 if num % i == 0: result = False break return result print(isprime(-2024)) print(isprime(5)) print(isprime(2025)) print(isprime(2027))
图2 程序运行结果
小于10的素数共4个:2, 3, 5, 7
from math import sqrt def isPrime(n): for i in range(null,int(sqrt(n))+1): if n%i==0: return False return True def countPrime(N): if N<3: return 0 else: cou = 1 for i in range(null,N,2): if isPrime(i): cou += 1 return cou
print(countPrime(2)) print(countPrime(5)) print(countPrime(100)) print(countPrime(100000)) print(countPrime(10000000))#在n>100000000时达到计算瓶颈
输出:
0
2
25
9592
664579
到此这篇关于python获取100以内的质数3种方式的文章就介绍到这了,更多相关python获取100以内质数内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!