|
发表于 2023-6-6 00:03:45
|
显示全部楼层
本帖最后由 白于玉 于 2023-6-6 00:06 编辑
- def PrimeNumberJudgement(n):
- if n in [2,3]:
- return 1
- elif n % 2 == 0:
- return 0
- elif n % 6 not in [1,5]:
- return 0
- else:
- for i in range(3,int(n**0.5)+1,2):
- if n % i == 0:
- return 0
- return 1
- n = 600851475143
- factor_list = [] # 质因子列表
- while 1:
- for f in range(2,int(n**0.5)+1): # 只检查到根号n为止
- if n % f == 0: # 若可以除尽
- n = n // f # 更新被除数
- factor_list.append(f) # 列表添加一个质因子
- break
- if n == 1:
- break
- if PrimeNumberJudgement(n) == 1: # 若被除数已经是素数,则结束循环
- factor_list.append(n) # 列表添加最后一个质因子
- break
- print(max(factor_list)) # 输出最大的质因子
复制代码 |
|