标题: [问题求助] 欧拉计划501题,大数量级的怎么搞 [打印本页]
作者: 元芳你怎么看 时间: 2016-4-12 15:19 标题: 欧拉计划501题,大数量级的怎么搞
本帖最后由 元芳你怎么看 于 2016-4-12 15:22 编辑
- """
- 欧拉计划501
- 原题链接:https://projecteuler.net/problem=501
- """
- import math
- def Ghost_Euler_501(num):
- sumeight = 0
- for i in range(1,num+1):
- counts = Ghost_Factor1(i) #len(Ghost_Factor(i))
- if counts == 8:
- sumeight = sumeight + 1
- print("The eight factors of %d is %d" % (num,sumeight))
-
-
- def Ghost_Factor(n):
- factors = []
- for i in range(1,n+1):
- if n%i == 0:
- factors.append(i)
- #print(factors)
- return(factors)
-
- def Ghost_Factor1(n):
- counter = 0
- sqrt_n = math.sqrt(n)
- for i in range(1,int(sqrt_n)):
- if n%i == 0:
- counter = counter + 2
- if sqrt_n - int(sqrt_n) == 0:
- counter = counter + 1
- else:
- counter = counter + 2
- return(counter)
复制代码
作者: 元芳你怎么看 时间: 2016-4-12 15:22
刚开始想着转换成列表的形式,使用len()函数,发现到了10万级的直接懵逼了;后来将求因数的方法改了一下,10万的能搞了,100万的直接又懵逼了。
求大神解答!!!!!!!!!!
作者: codegay 时间: 2016-4-12 15:34
好厉害。~
可是懵逼是什么意思呢?
作者: happy886rr 时间: 2016-4-12 15:39
本帖最后由 happy886rr 于 2016-4-12 15:43 编辑
回复 2# 元芳你怎么看
我才做到39题。天那,你这是要封顶的节奏啊,牛人。501题有中文翻译吗?我英语不好啊!
作者: 元芳你怎么看 时间: 2016-4-12 15:42
本帖最后由 元芳你怎么看 于 2016-4-12 15:44 编辑
回复 3# codegay
参数是10**5的时候相应时间还可以,算10**6的时候电脑响应不过来了
电脑懵逼就是响应时间太长了,短时间算不出来,下回改正
作者: 元芳你怎么看 时间: 2016-4-12 15:43
本帖最后由 元芳你怎么看 于 2016-4-12 15:45 编辑
回复 4# happy886rr
绝对新手,第一次做欧拉的题,倒着做了一个
作者: happy886rr 时间: 2016-4-12 15:48
回复 6# 元芳你怎么看
题目要10的12次方,也就是一万亿,看看有必要更改算法吗?
作者: codegay 时间: 2016-4-12 16:51
回复 4# happy886rr
pe-cn.github.io/problems/
作者: codegay 时间: 2016-4-12 17:13
欧拉计划的题目一般都是算法题。
可以在算法上优化。
欧拉计划的题目在网上都有很多讨论和公开的代码,可以看看别人的讨论和代码。
我不懂数学和算法,所以呢前面的简单题我已经解不出来了。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |