目录
1. 质数
2. 方式1:使用嵌套循环,判断这个数是否存在除1和它本身外的其他因数
3. 方式2:假设法,假设num是一个质数
4. 方式3:统计num的因数的个数
5. 封装一个函数,判断一个数是否是质数。
1. 质数
质数是只有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个。
2. 方式1:使用嵌套循环,判断这个数是否存在除1和它本身外的其他因数
# 定义一个空列表用于存放100以内的质数prime_num = []# 遍历获取2~100之间的整数,外层循环控制取值for num in range(2, 101): # 内层循环取因数(除1和它本身外) for i in range(2, num): # 判断num是否是质数,在2~num-1之间能否找到一个数,能被i整除 if num % i == 0: # 不是质数,结束内层循环,判断下一个数 break # break不执行,else执行,则num是一个质数 else: # 将质数num添加到列表中 prime_num.append(num)print(prime_num)
3. 方式2:假设法,假设num是一个质数
prime_num = []for num in range(2, 101): # 假设num是一个质数 result = True for i in range(2, num): # 判断成立,num不是一个质数 if num % i == 0: result = False # 结束内层循环,判断下一个数 break # num是质数,则添加到列表中 if result: prime_num.append(num)print(prime_num)
4. 方式3:统计num的因数的个数
# 统计100以内质数的个数prime_count = 0prime_num = []for num in range(2, 101): # 统计因数的个数 factor_count = 0 for i in range(1, 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 程序运行结果 5. 封装一个函数,判断一个数是否是质数。
def isprime(num): # 2是最小的质数,小于2则不是质数 if num < 2: return False else: # 假设num是一个质数 result = True for i in range(2, num): # 条件成立,则num不是质数 if num % i == 0: result = False break return resultprint(isprime(-2024))print(isprime(5))print(isprime(2025))print(isprime(2027))
图2 程序运行结果