เลขน่าเกลียดมาก
ตัวเลขที่น่าเกลียดอย่างยิ่งคือจำนวนบวกที่มีตัวประกอบเฉพาะทั้งหมดอยู่ในจำนวนเฉพาะของรายการเฉพาะที่มีขนาด k ตัวอย่างเช่น [1, 2, 4, 7, 8, 13, 14, 16, 19, 26, 28, 32] เป็นลำดับของตัวเลขที่น่าเกลียดมาก 12 ตัวแรกที่กำหนดจำนวนเฉพาะ =[2, 7, 13, 19] ขนาด 4
ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับค่า number, num เป็นอาร์กิวเมนต์แรกและอาร์เรย์ arr ของจำนวนเฉพาะเป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันควรค้นหาและส่งกลับตัวเลขที่น่าเกลียดสุด (num)th
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
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));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
16