【发布时间】:2009-10-15 09:35:56
【问题描述】:
我正在做项目 euler 问题 63,我必须在其中找到存在的数字数量:
x^(n) == y
其中n 是y 的长度。
很快就会发现这种情况的结果在奇数和偶数之间交替出现,所以我在 Haskell 中提出了这个:
prob63 = [ n | n <- nums n , i <-[1..10], i^(length $ show n) == n]
nums n | odd (n) == True = filter odd [n..]
| otherwise = filter even [n..]
如果 n
[1,2,3,4,5,6,7,8,9,16,25,36,49,64,81,125,216,343,512,729,1296,2401,4096,6561,16807,32768,59049,117649,262144,531441]
但这很慢,我想出的东西不起作用。我需要的是,根据之前的答案,它将开始测试来自n 的奇数或偶数。我将如何处理我已经拥有的东西?
【问题讨论】:
标签: haskell optimization