[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] 欧拉计划501题,大数量级的怎么搞

本帖最后由 元芳你怎么看 于 2016-4-12 15:22 编辑
  1. """
  2. 欧拉计划501
  3. 原题链接:https://projecteuler.net/problem=501
  4. """
  5. import math
  6. def Ghost_Euler_501(num):
  7. sumeight = 0
  8. for i in range(1,num+1):
  9. counts = Ghost_Factor1(i)           #len(Ghost_Factor(i))
  10. if counts == 8:
  11. sumeight = sumeight + 1
  12. print("The eight factors of %d is %d" % (num,sumeight))
  13. def Ghost_Factor(n):
  14. factors = []
  15. for i in range(1,n+1):
  16. if n%i == 0:
  17. factors.append(i)
  18. #print(factors)
  19. return(factors)
  20. def Ghost_Factor1(n):
  21. counter = 0
  22. sqrt_n = math.sqrt(n)
  23. for i in range(1,int(sqrt_n)):
  24. if n%i == 0:
  25. counter = counter + 2
  26. if sqrt_n - int(sqrt_n) == 0:
  27. counter = counter + 1
  28. else:
  29. counter = counter + 2
  30. return(counter)
复制代码

刚开始想着转换成列表的形式,使用len()函数,发现到了10万级的直接懵逼了;后来将求因数的方法改了一下,10万的能搞了,100万的直接又懵逼了。
求大神解答!!!!!!!!!!

TOP

好厉害。~
可是懵逼是什么意思呢?
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 happy886rr 于 2016-4-12 15:43 编辑

回复 2# 元芳你怎么看
我才做到39题。天那,你这是要封顶的节奏啊,牛人。501题有中文翻译吗?我英语不好啊!

TOP

本帖最后由 元芳你怎么看 于 2016-4-12 15:44 编辑

回复 3# codegay


    参数是10**5的时候相应时间还可以,算10**6的时候电脑响应不过来了
    电脑懵逼就是响应时间太长了,短时间算不出来,下回改正

TOP

本帖最后由 元芳你怎么看 于 2016-4-12 15:45 编辑

回复 4# happy886rr


    绝对新手,第一次做欧拉的题,倒着做了一个

TOP

回复 6# 元芳你怎么看
题目要10的12次方,也就是一万亿,看看有必要更改算法吗?

TOP

回复 4# happy886rr


    pe-cn.github.io/problems/
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

欧拉计划的题目一般都是算法题。
可以在算法上优化。
欧拉计划的题目在网上都有很多讨论和公开的代码,可以看看别人的讨论和代码。

我不懂数学和算法,所以呢前面的简单题我已经解不出来了。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

返回列表