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

JavaScriptを使用して範囲内で1に減少する素数を数える


問題

2つの数値の範囲配列を受け取るJavaScript関数を作成する必要があります。この関数は、桁の2乗和が最終的に1になるような素数の数を返す必要があります。

たとえば、23は素数であり、

22 + 32 = 13
12 + 32 = 10
12 + 02 = 1

したがって、23は有効な数値である必要があります。

以下はコードです-

const range = [2, 212];
String.prototype.reduce = Array.prototype.reduce;
const isPrime = (n) => {
   if ( n<2 ) return false;
   if ( n%2===0 ) return n===2;
   if ( n%3===0 ) return n===3;
   for ( let i=5; i*i<=n; i+=4 ) {
      if ( n%i===0 ) return false;
         i+=2;
      if ( n%i===0 ) return false;
   }
   return true;
}
const desiredSeq = (n) => {
   let t=[n];
   while ( t.indexOf(n)===t.length-1 && n!==1 )
   t.push(n=Number(String(n).reduce( (acc,v) => acc+v*v, 0 )));
   return n===1;
}
const countDesiredPrimes = ([a, b]) => {
   let res=0;
   for ( ; a<b; a++ )
      if ( isPrime(a) && desiredSeq(a) )
      res++;
   return res;
}
console.log(countDesiredPrimes(range));

出力

12

  1. JavaScriptの範囲内の自然数の立方体を合計する

    問題 2つの数値の範囲配列を受け取るJavaScript関数を作成する必要があります。この関数は、指定された範囲内にある数値のすべての立方体の合計を見つける必要があります。 例 以下はコードです- const range = [4, 11]; const sumCubes = ([l, h]) => {    const findCube = num => num * num * num;    let sum = 0;    for(let i = l; i <= h; i++){    

  2. JavaScriptを使用して範囲内で目的のペアを生成する

    問題 数値nを受け取るJavaScript関数を作成する必要があります。この関数は、次の条件を満たす整数のペア[a、b]を含む配列を生成する必要があります- 0 <= a <= b <= n 例 以下はコードです- const num = 4; const findPairs = (n = 1) => {    const arr = [];    for(let i = 0; i <= n; i++){       for(let j = i; j <=n; j++){