是否可以优化此表达式

Chr*_*ris 0 haskell

check x = filter((==0) . (\(x,y) -> x `mod` y)) $ zip (replicate 20 x)  [1..20]
main = do 
   print $ take 1 $ filter ((==20) . length) [check x | x <- [1..]]
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行上面的通道,http://www.compileonline.com/compile_haskell_online.php但它似乎使用了太多的资源,因为被评估的数量增加,所以我可以搜索filter(==18)但不是filter(>=19).反正是否有优化表达式以便运行?

Sas*_* NF 7

我认为这里的任务必须完全不同地解决.

看起来你正在寻找可以除以所有数字的第一个数字[1..20].我建议你找到范围内所有数字的所有主要除数,并找到所有素数的最大幂的乘积.