kostumブログ

勉強したことやノート代わりのアウトプットに使っています。

project Euler 005

環境

問題

2520 は 1 から 10 の数字の全ての整数で割り切れる数字であり, そのような数字の中では最小の値である. では, 1 から 20 までの整数全てで割り切れる数字の中で最小の正の数はいくらになるか.

考え方

  1. 求める数を20から数え上げていく
  2. 1 の数を1から20までの数で割る
  3. 2 で割り切れた場合、配列にその数を格納する
  4. 1 が終了したら、配列の長さを計算する

コード

let num = 20;
while (true) {
  let array = [];
  for (let i = 1; i < 21; i++) {
   if (num % i == 0) {
     array.push(i);
    }
  }
  if (array.length == 20) {
    break;
  }
  num++;
}
return num;

説明

  • まず、数え上げを開始する数字を設定する
  • while文とbreakを使うことで、ループさせる
  • 割り切れた数を格納する配列を設定する
  • for文で 1 から 20 までの剰余を計算する
  • 割り切れた場合は、割った数を配列に格納する
  • 1 から 20 の全ての数で割り切れた場合は、配列の長さが 20 なので、配列の長さが 20 になるまでループを続け、数え上げの数に1 を足す
  • 配列の長さが 20 の場合、while ループを抜け、返り値に数え上げの数を返す