BETA

TypeScriptでProject Eulerの問題を1~3解いてみました。

投稿日:2018-10-17
最終更新:2018-10-28

TypeScriptでは1..1000とかで配列生成する構文がなく、
またrange(1, 1000)とかもできないので、どうやって書くのがベストなのか不明瞭ですね。

ネットで調べる限り、Arrayコンストラクタで生成する配列数を指定し、
その結果をArray.fromでArray型に変換するやり方が多いように思いましたが、
スプレッド演算子(...)を使った方が、個人的にはスマートな気がします。

let result: number;

// Find the sum of all the multiples of 3 or 5 below 1k.
result = [...new Array(1000).keys()]
  .filter(i => i % 3 == 0 || i % 5 == 0)
  .reduce((a, b) => a + b);
console.log(result);

// By considering the terms in the Fibonacci sequence whose values do not exceed 4M, find the sum of the even-valued terms.
let [f, s, t] = [0, 1, 1];
result = 0;
while (t <= 4_000_000) {
  [f, s, t] = [s, t, s + t];
  if (t % 2 == 0) {
    result += t;
  }
}
console.log(result);

// What is the largest prime factor of the number 600,851,475,143 ?
let divisor: number = 2;
let targetNumber = 600_851_475_143;
while (targetNumber > 1) {
  while (targetNumber % divisor == 0) {
    targetNumber /= divisor;
  }
  divisor++;
}
result = divisor - 1;
console.log(result);
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

勉強したことのメモ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!