これは文字通り Project Euler の最初の問題です。それを解決するためにこれら 2 つのアルゴリズムを作成しましたが、それぞれ異なる答えが得られます。基本的に、仕事は 3 と 5 の 1000 未満のすべての積を合計するプログラムを書くことです。
これが正しいものです:
divisors<-0
for (i in 1:999){
if ((i %% 3 == 0) || (i %% 5 == 0)){
divisors <- divisors+i
}
}
それがもたらす答えは233168です
ここに間違ったものがあります:
divisors<-0
for (i in 1:999){
if (i %% 3 == 0){
divisors <- divisors + i
}
if (i %% 5 == 0){
divisors <- divisors + i
}
}
これにより、答えが得られます 266333
これら2つの答えが異なる理由を誰か教えてもらえますか? 最初の方が正しく、明らかに簡単な解決策です。しかし、2番目が正しくない理由を知りたいです。
編集:事故で2番目の答えをごまかしました。