Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

整数は、JavaScriptでは完全な平方として除数の2乗の合計を持ちます


問題

2つの数値mとnの配列で指定された範囲をとるJavaScript関数を作成する必要があります。

この関数は、mとnの間のすべての整数(1 <=m <=nなどのmとnの整数)を見つけて、除数の2乗の合計自体が2乗になるようにする必要があります。

サブ配列の配列を返す必要があります。サブアレイには2つの要素があります。最初に2乗された除数の数が2乗で、次に2乗された除数の合計です。

以下はコードです-

const range = [1, 500];
const listSquared = ([m, n]) => {
   const res = [];
   for (let i = m; i <= n; ++i) {
      let sum = getDivisors(i).reduce((sum, n) => sum + n * n, 0);
      let ok = Number.isInteger(Math.sqrt(sum));
      if (ok) {
         res.push([i, sum]);
      }
   }
   return res;
}
function getDivisors (n) {
   const divisors = [];
   for (let i = 1; i <= n / 2; ++i) {
      if (n % i) {
         continue;
      }
      divisors.push(i);
   }
   return divisors.concat([n]);
}
console.log(listSquared(range));

出力

[ [ 1, 1 ], [ 42, 2500 ], [ 246, 84100 ], [ 287, 84100 ] ]

  1. JavaScriptを使用してnまでのすべての完全な立方体の値を合計する

    問題 数値nを受け取り、n以下のすべての完全な立方体数値の合計を返すJavaScript関数を作成する必要があります。 例 以下はコードです- const num = 23546; const sumPerfectCubes = (num = 1) => {    let i = 1;    let sum = 0;    while(i * i * i <= num){       sum += (i * i * i);       i++;  

  2. 合計がC++の完全な正方形である配列内のペアの数

    N個の要素の配列が与えられます。目標は、i!=jのような完全な二乗である合計を持つすべてのペア(Arr [i]、Arr [j])の数を見つけることです。つまり、Arr [i] +Arr[j]は完全な正方形です。 これを行うには、ペアの合計を計算し、その合計の平方根が平方根のフロア値と等しいかどうかを確認します。 sqrt(Arr [i] + Arr [j])-floor(sqrt(Arr [i] + Arr [j])==0。 例を挙げて理解しましょう。 入力 − arr [] ={4,3,2,1,2,4} N =6 出力 −合計が完全な平方であるペアの数− 2 説明 − Arr