Computer >> Máy Tính >  >> Lập trình >> Javascript

JavaScript số siêu xấu xí

Số siêu xấu

Số siêu xấu là số dương mà tất cả các thừa số nguyên tố đều nằm trong danh sách số nguyên tố đã cho có kích thước là k. Ví dụ:[1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] là dãy 12 số siêu xấu đầu tiên cho trước là số nguyên tố =[2, 7, 13, 19] có kích thước 4.

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript lấy number, num, làm đối số đầu tiên và một mảng, arr, các số nguyên tố làm đối số thứ hai. Hàm sẽ tìm và trả về số siêu xấu thứ (num).

Ví dụ

Mã cho điều này sẽ là -

const num = 7;
const arr = [2, 7, 14, 19];
const superUgly = (num = 1, arr = []) => {
   arr.sort((a, b)=> a - b);
   const ptr = [];
   const res = [];
   for(let i=0;i<arr.length;i++){
      ptr[i] = 0;
   };
   res.push(1);
   for(let i = 1; i < num; i++){
      let mn=Math.pow(2, 32) - 1;
      for(let j = 0; j < arr.length; j++){
         mn=Math.min(mn,arr[j]*res[ptr[j]])
      };
      res[i]=mn
      for(let j=0; j < arr.length; j++){
         if(mn % arr[j] === 0){
            ptr[j]++;
         };
      };
   };
   return res[num-1]
};
console.log(superUgly(num, arr));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

16