ProjectEuler | |
JavaScriptでも解いてみる。計算ぐらいすらすら書けるようになっておきたい。
10未満の自然数のうち、3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり、 これらの合計は 23 になる。
同じようにして、1,000 未満の 3 か 5 の倍数になっている数字の合計を求めよ。
Problem 1 - PukiWiki
var ans = 0; var max = 1000; for (var i=0; i<max; i++) { if (i%3==0 || i%5==0) { ans += i; } } print(ans);
$ js p001.js 233168
ProjectEuler | |
フィボナッチ数列の項は前の2つの項の和である。 最初の2項を 1, 2 とすれば、最初の10項は以下の通りである。
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...数列の項が400万を超えない範囲で、偶数の項の総和を求めよ。
Problem 2 - PukiWiki
var ans = 0; var val = 0; var x1 = 1, x2 = 2; while (val <= 4000000) { if (val%2==0) { ans += val; } val = x1 + x2; x1 = x2; x2 = val; } print(ans);
$ js p002.js 4613730
ProjectEuler | |
13195 の素因数は 5、7、13、29 である。 600851475143 の素因数のうち最大のものを求めよ。
Problem 3 - PukiWiki
var target = 600851475143; var ans = 0; function get_primes(num) { if (num < 2) { return []; } else if (num == 2) { return [2]; } var primes = []; for (var i=2; i*i <= num; i++) { while (num % i == 0) { primes.push(i); num /= i; } } primes.push(num); return primes; } try { ans = get_primes(target).pop(); } catch(e) { ans = 0; } print(ans);
$ js p003.js 6857