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

JavaScriptで範囲内の特定の距離を持つk-素数を見つける


K-素数

自然数は、多重度で数えられた正確にk個の素因数を持っている場合、k-素数と呼ばれます。

つまり、4の素因数は2だけですが、-

であるため、2の素数になります。

4 =2 * 2であり、両方の2が別々にカウントされ、カウントは2になります。

同様に、8 =2 * 2 * 2でカウントが3になるため、8は3プライムです。

問題

数値k、距離、範囲を取り込むJavaScript関数を作成する必要があります。

この関数は、距離が指定された距離と正確に等しい範囲内のk-素数を含む配列の配列を返す必要があります。

以下はコードです-

const k = 2;
const step = 2;
const range = [0, 50];
const kPrimeSteps = (k = 1, step = 1, [start, end]) => {
   const res = [];
   let i = start;
   const findLen = (n = 1) => {
      let count = 0, i = 2;
      while (i * i <= n) {
         while (n % i === 0) {
            count++;
            n /= i;
         }
         i++;
      }
      if (n > 1) count++;
      return count;
   }
   while (i <= end - step) {
      if ((findLen(i) == k && findLen(i+step) == k))
      res.push([i, i+step]);
      i++;
   }
   return res;
};
console.log(kPrimeSteps(k, step, range));

出力

以下はコンソール出力です-

[ [ 4, 6 ], [ 33, 35 ] ]

  1. JavaScriptを使用して範囲内の逆さまの総数の数を見つける

    逆さまの数字 180度回転しても同じ数字は、逆さまの数字と呼ばれます。 たとえば、9116、69。 問題 2つの数値の範囲配列を受け取るJavaScript関数を作成する必要があります。この関数は、指定された範囲内にあるすべての逆さまの数値のカウントを返す必要があります。 例 以下はコードです- const range = [5, 125]; const flipNum = (number) => {    const upsideDownDigits = [0, 1, -99, -99, -99, -99, 9, -99, 8, 6];   &nb

  2. JavaScriptを使用して範囲内の数で割り切れる数の数を見つける

    問題 最初の引数として2つの整数の範囲を取り、2番目の引数として数値を受け取るJavaScript関数を作成する必要があります。 この関数は、指定された範囲内の入力数値で割り切れるすべての数値を見つけて、それらのカウントを返す必要があります。 例 以下はコードです- const range = [6, 57]; const num = 3; const findDivisibleCount = (num = 1, [l, h]) => {    let count = 0;    for(let i = l; i <= h; i++){