鱼C论坛

 找回密码
 立即注册
查看: 3840|回复: 8

[已解决]欧拉计划第三题

[复制链接]
发表于 2017-12-9 00:27:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是题目:
最大质因数
13195的所有质因数为5、7、13和29。

600851475143最大的质因数是多少?
  1. a = 600851475143
  2. b = 0
  3. d = []
  4. f = []
  5. h = 0
  6. for i in range(1,a):
  7.     if a%i == 0:
  8.         d.append(i)#把a的因数添加到d中
  9. #接下来判断d中的元素是不是质数
  10. for e in d:
  11.     for g in range(1,e+1):
  12.         if type(e/g) == int:
  13.             h = e#当h的值改变则认为d的元素e不是质数
  14.         else:
  15.             pass
  16.         if h == 0:#当h的值没有改变则认为d的元素是a的质因数
  17.             f.append(e)
  18. print(max(f))
复制代码

上面是我写的程序,当a的值小的时候会出来结果,但是如果a的值太大了就会出不来结果,是不是一直在运算?
怎么改更好?
最佳答案
2017-12-9 21:55:00
py大神 发表于 2017-12-9 21:47
我也感觉是这样........

对了,e/g肯定是float
你可以试试type(4/2)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-9 00:41:36 | 显示全部楼层
初学者,小白,写的代码有点差,不要嘲笑我
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-9 00:41:43 | 显示全部楼层
初学者,小白,写的代码有点差,不要嘲笑我
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-9 09:30:47 From FishC Mobile | 显示全部楼层
本帖最后由 BngThea 于 2017-12-9 09:31 编辑

根据你的思路,对于每一个e,你都应该先将h设为零,而且g应该从2开始判断到e-1
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-9 20:53:15 | 显示全部楼层
BngThea 发表于 2017-12-9 09:30
根据你的思路,对于每一个e,你都应该先将h设为零,而且g应该从2开始判断到e-1
  1. a = 98765456231
  2. b = 0
  3. d = []
  4. f = []
  5. h = 0
  6. for i in range(1,a):
  7.     if a%i == 0:
  8.         d.append(i)#把a的因数添加到d中
  9. #加下来判断d中的元素是不是质数
  10. for e in d:
  11.     h = 0
  12.     for g in range(2,e):
  13.         if type(e/g) == int:
  14.             h = e#当h的值改变则认为d的元素e不是质数
  15.         else:
  16.             pass
  17.         if h == 0:
  18.             f.append(e)
  19. print(max(f))
  20.         
  21.    
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-9 20:53:48 | 显示全部楼层
BngThea 发表于 2017-12-9 09:30
根据你的思路,对于每一个e,你都应该先将h设为零,而且g应该从2开始判断到e-1

还是运行不出来.....
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-9 21:36:22 From FishC Mobile | 显示全部楼层
py大神 发表于 2017-12-9 20:53
还是运行不出来.....

逻辑是对了,但是算法太糟糕,需要的计算时间太长
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-9 21:47:13 | 显示全部楼层
BngThea 发表于 2017-12-9 21:36
逻辑是对了,但是算法太糟糕,需要的计算时间太长

我也感觉是这样........
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-9 21:55:00 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
py大神 发表于 2017-12-9 21:47
我也感觉是这样........

对了,e/g肯定是float
你可以试试type(4/2)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 12:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表