Files
freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-6-sum-square-difference.md
2022-01-20 20:30:18 +01:00

1.8 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f3721000cf542c50fe85 問題 6: 和と 2 乗の差 5 302171 problem-6-sum-square-difference

--description--

最も小さい 10 個の自然数について、それぞれの 2 乗の和は次のとおりです。

12 + 22 + ... + 102 = 385

最も小さい 10 個の自然数について、それらの和の 2 乗は次のとおりです。

(1 + 2 + ... + 10)2 = 552 = 3025

したがって最も小さい 10 個の自然数について、2 乗の和と、和の 2 乗との差は 3025 - 385 = 2640 です。

最も小さいものから n 個の自然数について、2 乗の和と、和の 2 乗との差を求めなさい。

--hints--

sumSquareDifference(10) は数値を返す必要があります。

assert(typeof sumSquareDifference(10) === 'number');

sumSquareDifference(10) は 2640 を返す必要があります。

assert.strictEqual(sumSquareDifference(10), 2640);

sumSquareDifference(20) は 41230 を返す必要があります

assert.strictEqual(sumSquareDifference(20), 41230);

sumSquareDifference(100) は 25164150 を返す必要があります。

assert.strictEqual(sumSquareDifference(100), 25164150);

--seed--

--seed-contents--

function sumSquareDifference(n) {

  return true;
}

sumSquareDifference(100);

--solutions--

const sumSquareDifference = (number)=>{
  let squareOfSum = Math.pow(sumOfArithmeticSeries(1,1,number),2);
  let sumOfSquare = sumOfSquareOfNumbers(number);
 return squareOfSum - sumOfSquare;
}

function sumOfArithmeticSeries(a,d,n){
  return (n/2)*(2*a+(n-1)*d);
}

function sumOfSquareOfNumbers(n){
 return (n*(n+1)*(2*n+1))/6;
}