Project Euler No.1

R1001623.JPG

Project Eulerはコンピュータで解くための問題集を公開しているサイトです。その第1問目をMatlabでやってみました。Octaveでも動きます。

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000.
(10未満の3あるいは5で割り切れる数は、3、5、6、9があり、それらをすべて足すと23になる。では、1000未満の3あるいは5の倍数をすべて足すといくつになるだろうか。)

まず1から1000までの数字をつくって変数kに代入しておきます。mod命令によって3あるいは5で割ったときの余りが0になるものを選び出し、その和を計算しています。

k = 1:999;
s = sum(k(mod(k, 3)==0 | mod(k, 5)==0));
disp(s);