Project Euler Problem 3
来源:互联网 发布:linux 嗅探 编辑:程序博客网 时间:2024/06/16 21:17
说在前面的话:本人刚开始学习Python,用Project Euler的题目来练练手,欢迎大家交流指教!
问题:
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
解法一:(我自己的方法)
思路:
1)找出600851475143的所有奇数因子,因为除了2以外所有偶数都不是质数
2)判断奇数因子是否为质数
3)找出最大质因子
Code in Python:
import mathimport times = time.time()def isprime(n): '''判断所给参数是否为质数。若一个数能被2到平方根的任何一个数整除,那么就不是质数;反之则为质数,返回True''' for div in range(2, int(math.sqrt(n)) + 1): if n % div == 0: return(False) else: return(True)def bignum(x, y): '''判断数的大小。返回两个数中大的那个数''' if x > y: return(x) else: return(y)def find_lp_factor(target): '''找出目标数的最大质因子''' temp = target // 2 largest = 2 for i in range(3, temp + 1, 2):#不去考虑偶数 if target % i == 0:#若i是因子 ii = target // i#则ii也是因子 if ii < i: break#过滤掉重复的 else: if isprime(i):#i是质因子 largest = bignum(largest,i) return(largest)lprime = find_lp_factor(600851475143)f = time.time()print('The largest prime factor of 600851475143 is',lprime)print('It\'s found in',f - s,'seconds.')
Solution:
The largest prime factor of 600851475143 is 6857
It's found in 0.23001313209533691 seconds.
解法二:(网上的解法,比我自己的方法快)
Code in Python:
import times = time.time()ma = 600851475143largest = 0counter = 2while(counter * counter < ma): if ma % counter == 0: ma = ma // counter largest = counter else: counter = counter + 1if ma > largest: largest = maf = time.time()print(largest,'is found in',f - s,'seconds')
6857 is found in 0.0019998550415039062 seconds
0 0
- Project Euler - Problem 3
- Project Euler problem 3
- project euler Problem 3
- Project Euler Problem 3
- 【Project Euler】【Problem 3】Largest prime factor
- Python计算Project Euler Problem 3
- Project Euler Problem 3: Largest prime factor
- Euler Project Problem 6
- project euler problem 11
- Project Euler Problem 81
- Project Euler Problem 60
- Project Euler Problem 59
- Project Euler Problem 58
- Project Euler Problem 57
- Project Euler Problem 16
- Project Euler Problem 30
- Project Euler Problem 31
- Project Euler Problem 32
- HDU5600:N bulbs
- setFeature的妙用,解析XML时,外部注入预防即XXE攻击
- unity3d 参考坐标系
- 安装操作系统前硬盘如何分区与格式化
- http://imageresizing.net/
- Project Euler Problem 3
- 分类的使用注意事项
- Objective-C_语言_计算机网络
- linux挂载共享文件
- 自定义View——天气下雨效果
- Object-C学习笔记
- 基于router模式的会议实现
- JavaScript实现原理简述
- Odoo开发教程(四):定义Tree-Form-Menu-Action