Project Euler 10 11 無気力 (計画)
僕は今日無気力です。毎回この記事を書いているときは自分が学んだことや考えたことを書いていますが、今日の僕は朝から何も考えていません。なので、めちゃくちゃなことを書くのは嫌なので今日は早速問題にいきます。こんな日もあります。いいんです。楽天カードマンは帰ってください。でもその代わり二つ分やります。途中で何か思いついたら最後に書きます。
今回の問題1:
”2000000以下の素数の合計を求めよ。”
今回のビジョンとしては、素数ネタはいくつか出てきたのでこれまでに作った関数を使ってしまいましょう。詳しくは5と7を参考にしてください。
function largestPrime(num){
var factor = 2;
var largest = 1;
while(num != 1){
if(num % factor == 0){
num = num / factor;
largest = factor;
}else{
factor++;
}
}
return(largest);
};
function primes(num){
primeArray = [];
for(var i = 2; i<num+1; i++){
var prime = largestPrime(i);
if(primeArray.indexOf(prime) == -1){
primeArray.push(prime);
}
}
return(primeArray);
}
これらが今まで作った関数です。primes(num)がnumより小さい素数の配列を返すので、この中の項を全て足します。
function sumPrime(below){
var sum = 0;
primeArray = primes(below);
console.log(primeArray);
for(var i = 0; i<primeArray.length; i++){
sum += primeArray[i];
}
console.log(sum);
}
完成です。次いきましょう。
今回の問題2:
”以下の20×20の数字のグリッドで、縦横斜めに隣接する数字の積のうち、最も大きいものを求めよ。”
ここから先は
3,820字
¥ 100
この記事が気に入ったらチップで応援してみませんか?