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

JavaScriptで素数の累乗と積として数を表す


問題

正の整数をとるJavaScript関数を作成する必要があります。私たちの関数は、この数を素数の累乗の合計として表す必要があります。

したがって、数値nの場合、関数は次のような文字列を返す必要があります-

n = "(p1**n1)(p2**n2)...(pk**nk)"

ここで、p1、p2、p3..pkは素数であり、n1、n2、.. nkはそれらの非負の累乗であり、**bは累乗bを表します。

以下はコードです-

const isPrime = num => {
    for(let i = 2; i < num; i++){
        if(num % i === 0){
            return false;
        }
    };
    return num > 1;
}
const count = (arr = [], n = 1) => {
for(const k in arr){
    if(n % k === 0){
         arr[k] += 1;
         return count(arr, n / k)
      }
   };
       
   return arr;
};
const primeFactors = (n) => {
    const res = [];
    for(let i = 2; i < n; i++){
        if(isPrime(i)){
            res.push(i);
        }
    };
  const arr = [];
    for(const el in res){
        arr[el] = 0;
    };
    count(arr,n);
    let str = '';
    for(const x in arr){
  if(arr[x] > 1){
         str += '(%s**%s)' %(x,arr[x])
      }else if(arr[x] === 1){
          str += '(%s)' % (x)
      };
  };
   return str
};
console.log(primeFactors(86240));

出力

(2**5)(5)(7**2)(11)

  1. JavaScriptで数値が有効な4の累乗であるかどうかを確認する

    問題 唯一の引数として単一の整数numを受け取るJavaScript関数を作成する必要があります。この関数は、この数値が有効な4の累乗であるかどうかをチェックする必要があります。 4の累乗の場合はtrueを返し、そうでない場合はfalseを返す必要があります。 たとえば、関数への入力が-の場合 const num1 = 2356; const num2 = 16; その場合、出力は-になります。 const output1 = false; const output2 = true; 例 このためのコードは-になります const num1 = 2356; const num2 = 1

  2. 10進数のビットを反転し、JavaScriptで新しい10進数を返す

    問題 10進数を受け取り、それを2進数に変換し、その1ビットを0に、0を1に反転し、このように形成された新しい2進数に相当する10進数を返すJavaScript関数を作成する必要があります。 例 以下はコードです- const num = 45657; const reverseBitsAndConvert = (num = 1) => {    const binary = num.toString(2);    let newBinary = '';    for(let i = 0; i < bi