約数と加算
5668 ワード
問題の説明
パラメータは2つの整数leftとrightです.左から右までのすべての数でsolution関数を完了し、約数の個数に偶数因数を加え、約数の個数に奇数因数を加えて減算数を返します.
せいげんじょうけん
I/O例
leftrightresult131743242752
I/O例説明
I/O例#1
したがって、13+14+15-16+17=43を返さなければなりません.I/O例#2
したがって、24-25+26+27=52を返さなければなりません.
私の答え
function solution(left, right) {
let sum = 0
for(let i = left; i <= right; i++){
let result = []
for(let j = 1; j <=i; j ++){
if(i % j === 0){
result.push(j)
}
}
if(result.length % 2 === 0){
sum += i
}else {
sum -= i
}
}
return sum
}
複文を回し,左から右の範囲の複文を,新たに宣言された空の配列に約数に対応する値を入れる.そして,その配列の長さが偶数か奇数かを条件として加算と減算を行った.他人を解く
function solution(left, right) {
var answer = 0;
for (let i = left; i <= right; i++) {
if (Number.isInteger(Math.sqrt(i))) {
answer -= i;
} else {
answer += i;
}
}
return answer;
}
この解法は薬水個数を求める関数を構築せず,Number.isInteger((Math.sqrt(i))
を用いて問題を解決した.Number.isInteger()メソッドは、与えられた値が整数であるかどうかを決定します.使用される概念は、ある数の平方根が整数であれば、約数は奇数個であり、平方根でなければ、約数は偶数個である.
Reference
この問題について(約数と加算), 我々は、より多くの情報をここで見つけました https://velog.io/@zzok3312/약수의-개수와-덧셈テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol