1から20までのすべての数値で均等に割り切れる最小の正の数値は何ですか?ProjectEulerのヒントが必要です
私は簡単にループを使って命令型プログラミング言語で解決策を強制することができます。しかし、私はハスケルでこれをやりたいと思っています。私はそれがそのようにする方法のヒントを必要とする
[n | n <- [1..], d <- [1..20], n `mod` d == 0] !! 0
しかし、私は「d」は、D = 1で条件が等しい真になりますので、それが動作しません知っている:私はこのような何かをやって考えていましたn mod
dが[1..20]について計算され、20個すべての数値について検証できます。
もう一度解決策を教えてください。ありがとう。
1から20までのすべての数値をかなり単純に計算できますか? –
PEの1分間のルールに収まるようにするには、ブルートフォースが数分以上かかるので、mathyの解決策は避けられません。あなたはどれが欲しいですか? –
@Ziyaoブルートフォースの解は、ghciから約30秒(またはghc -O3で2秒)で見つけられます。ただし、20の倍数のみをチェックする限り、結果は20の倍数でなければなりません。もちろん、純粋な数学的方法は非常に簡単ですが、それはhaskellのプログラミングを練習するために全く役に立たない。 –