Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

Tôi đã cố gắng tìm các yếu tố chính của một số, được ghi dưới đây là 'số nguyên' bằng cách sử dụng vòng lặp cho JavaScript. Tôi dường như không thể làm cho nó hoạt động và tôi không chắc đó là JavaScript hay logic tính toán của tôi.

//integer is the value for which we are finding prime factors
var integer = 13195;

var primeArray = [];

//find divisors starting with 2

for (i = 2; i < integer/2; i++) {
  if (integer % i == 0) {

    //check if divisor is prime
    for (var j = 2; j <= i / 2; j++) {
      if (i % j == 0) {
        isPrime = false;
      } else {
        isPrime = true;
      }
    }

    //if divisor is prime

    if (isPrime == true) {
      //divide integer by prime factor & factor store in array primeArray
      integer /= i
      primeArray.push(i);
    }
  }
}

for (var k = 0; k < primeArray.length; k++) {
  console.log(primeArray[k]);
}

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

double-beep

4.60613 Huy hiệu vàng31 Huy hiệu bạc40 Huy hiệu đồng13 gold badges31 silver badges40 bronze badges

Đã hỏi ngày 6 tháng 10 năm 2016 lúc 14:45Oct 6, 2016 at 14:45

John the userjohn người dùngJohn the User

5902 Huy hiệu vàng4 Huy hiệu bạc12 Huy hiệu đồng2 gold badges4 silver badges12 bronze badges

3

Câu trả lời ở trên là không hiệu quả với độ phức tạp O (n^2). Dưới đây là một câu trả lời tốt hơn với độ phức tạp O (n).

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))

Bạn có thể lọc cho các bản sao khi bạn muốn!

double-beep

4.60613 Huy hiệu vàng31 Huy hiệu bạc40 Huy hiệu đồng13 gold badges31 silver badges40 bronze badges

Đã hỏi ngày 6 tháng 10 năm 2016 lúc 14:45Dec 6, 2018 at 1:34

5

John the userjohn người dùng

function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));

5902 Huy hiệu vàng4 Huy hiệu bạc12 Huy hiệu đồng

Câu trả lời ở trên là không hiệu quả với độ phức tạp O (n^2). Dưới đây là một câu trả lời tốt hơn với độ phức tạp O (n).

double-beep

4.60613 Huy hiệu vàng31 Huy hiệu bạc40 Huy hiệu đồng13 gold badges31 silver badges40 bronze badges

Bạn có thể lọc cho các bản sao khi bạn muốn!Oct 6, 2016 at 14:58

War10ckWar10ckWar10ck

Đã trả lời ngày 6 tháng 12 năm 2018 lúc 1:347 gold badges41 silver badges51 bronze badges

2

Đây là một giải pháp làm việc:

Bạn đã đi đúng hướng. Có hai sai lầm nhỏ. Việc đánh giá

function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
5 dường như không chính xác. Tôi tin rằng đánh giá phù hợp hơn là
function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
6 trong vòng lặp
function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
7 bên ngoài của bạn. Điều này là do khi bạn chia số nguyên của mình dưới
function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
8, điều này dẫn đến việc đánh giá số nguyên cuối cùng là
function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
9. Ưu điểm chính cuối cùng trong trường hợp này cũng là
function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
9 và do đó sẽ cần được đánh giá là
    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
1 trái ngược với
    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
2.

Về lý do tại sao câu lệnh nhật ký cuối cùng không hoạt động, có một lỗi đánh máy đơn giản là

    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
3 trái ngược với
    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
4.

    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}

https://jsfiddle.net/JamesOR/RC7SY/

Đã trả lời ngày 6 tháng 10 năm 2016 lúc 14:58

let findPrimeFactors = (num) => {
    let arr = [];


    for ( var i = 2; i < num; i++) {
        let isPrime
        if (num % i === 0) {
            isPrime = true;
            for (var j = 2; j <= i; j++) {
                if ( i % j === 0) {
                isPrime == false;
                }
            } 
        }if (isPrime == true) { arr.push(i)}

    }console.log(arr)
}

findPrimeFactors(543)

12.2k7 Huy hiệu vàng41 Huy hiệu bạc51 Huy hiệu ĐồngMay 16, 2017 at 11:09

4

Tôi tin rằng có một sai lầm trong cả hai mã ở trên. Nếu bạn thay thế số nguyên bằng 100 nhân tố chính sẽ không hoạt động nữa vì yếu tố 2 không thể được xem xét với các số cho các vòng lặp. Như j = 2, i = 2 và j

Đã cố gắng làm cho nó hoạt động theo cách này nhưng không thể tìm ra.

let findPrimeFactors = (num) => {
    let arr = [];


    for ( var i = 2; i < num; i++) {
        let isPrime
        if (num % i === 0) {
            isPrime = true;
            for (var j = 2; j <= i; j++) {
                if ( i % j === 0) {
                isPrime == false;
                }
            } 
        }if (isPrime == true) { arr.push(i)}

    }console.log(arr)
}

findPrimeFactors(543)
4

let findPrimeFactors = (num) => {
    let arr = [];


    for ( var i = 2; i < num; i++) {
        let isPrime
        if (num % i === 0) {
            isPrime = true;
            for (var j = 2; j <= i; j++) {
                if ( i % j === 0) {
                isPrime == false;
                }
            } 
        }if (isPrime == true) { arr.push(i)}

    }console.log(arr)
}

findPrimeFactors(543)
5

Phải dựa vào một cách tiếp cận khác với một vòng lặp trong thời gian ở đây:

Bạn cũng có thể đi với một cái gì đó như thế:

Đã trả lời ngày 16 tháng 5 năm 2017 lúc 11:09

function * primes () {
  let n = 2
  while (true) {
    let isPrime = true
    for (let i = 2; i <= n / 2; i++) {
      if (n % i === 0) {
        isPrime = false
        break
      }
    }
    if (isPrime) {
      yield n
    }
    n++
  }
}

Khi nhân tố hóa một số nguyên (

    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
5) thành các yếu tố chính của nó, sau khi tìm thấy yếu tố chính đầu tiên, vấn đề trong tay sẽ giảm đi để tìm ra yếu tố chính của thương số (
    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
6).

function primeFactorizer (n, result = []) {
  for (const p of primes()) {
    if (n === p) {
      result.push(p)
      return result
    }
    if (n % p === 0) {
      result.push(p)
      return primeFactorizer(n / p, result)
    }
  }
}

Giả sử

    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
5 chia hết cho Prime ____38 thì chúng ta có
    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
9 vì vậy sau khi tìm thấy
    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
8, vấn đề sẽ giảm xuống để nhân tố
let findPrimeFactors = (num) => {
    let arr = [];


    for ( var i = 2; i < num; i++) {
        let isPrime
        if (num % i === 0) {
            isPrime = true;
            for (var j = 2; j <= i; j++) {
                if ( i % j === 0) {
                isPrime == false;
                }
            } 
        }if (isPrime == true) { arr.push(i)}

    }console.log(arr)
}

findPrimeFactors(543)
1 (thương số). Nếu tên hàm là
let findPrimeFactors = (num) => {
    let arr = [];


    for ( var i = 2; i < num; i++) {
        let isPrime
        if (num % i === 0) {
            isPrime = true;
            for (var j = 2; j <= i; j++) {
                if ( i % j === 0) {
                isPrime == false;
                }
            } 
        }if (isPrime == true) { arr.push(i)}

    }console.log(arr)
}

findPrimeFactors(543)
2 thì chúng ta có thể gọi nó là đệ quy và giải pháp cho
    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
5 sẽ là:Aug 28, 2019 at 10:06

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

...Xaqron

Cho đến khi

let findPrimeFactors = (num) => {
    let arr = [];


    for ( var i = 2; i < num; i++) {
        let isPrime
        if (num % i === 0) {
            isPrime = true;
            for (var j = 2; j <= i; j++) {
                if ( i % j === 0) {
                isPrime == false;
                }
            } 
        }if (isPrime == true) { arr.push(i)}

    }console.log(arr)
}

findPrimeFactors(543)
6 là chính.41 gold badges138 silver badges203 bronze badges

Ngoài ra, tôi sẽ sử dụng chức năng Trình tạo trợ giúp tạo ra các số nguyên tố cho chúng tôi:


Và chức năng để nhân tố

    function getAllFactorsFor(remainder) {
    var factors = [], i;

    for (i = 2; i <= remainder; i++) {
        while ((remainder % i) === 0) {
            factors.push(i);
            remainder /= i;
        }
    }

    return factors;
}
5 sẽ là:

function primeFactors(n) {
    let arr=[];
    let i = 2;
    while(i<=n){
        if(n%i == 0) {
            n= n/i;
            arr.push(i);
        } else {
            i++;
        }
    }
    return arr;
}
// primeFactors(10) [2,5]
// primeFactors(10) [2,2,5,5]
// primeFactors(2700) [2, 2, 3, 3, 3, 5, 5]

Đã trả lời ngày 28 tháng 8 năm 2019 lúc 10:06Jul 15, 2021 at 14:56

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

1

Xaqronxaqron

28.9K41 Huy hiệu vàng138 Huy hiệu bạc203 Huy hiệu đồng

function isPrime(n){
if (n === 1){
  return false;
}
  else if (n === 2){
    return true;
  }
  else{
  for (let x = 2; x < n; x ++){
    if (n % x === 0){
      return false;
    }
  }
    return true;
}
}

let primeFac = []
let num = 30
for (let x = 0; x <= num; x++){
  if (num % x === 0 && isPrime(x) === true){
primeFac.push(x);
  }
}
console.log(`${primeFac}`)

Chúng ta có thể tìm thấy các số yếu tố chính lên đến N chỉ với một vòng lặp. Đó là một giải pháp rất đơn giản mà không có bất kỳ vòng lặp lồng nhau.Feb 14, 2018 at 14:43

Độ phức tạp về thời gian sẽ nhỏ hơn O (n) vì chúng ta đang chia "n" cho "I".

function getPrimeFactorsFor(num) {
  const primes = [];
  for (let factor = 2; factor <= num; factor++) {
    while ((num % factor) === 0) {
      primes.push(factor);
      num /= factor;
    }
  }
  return primes;
}


console.log("10 has the primes: ", getPrimeFactorsFor(10));
console.log("8 has the primes: ", getPrimeFactorsFor(8));

console.log("105 has the primes: ", getPrimeFactorsFor(105))
console.log("1000 has the primes: ", getPrimeFactorsFor(1000))
console.log("1155 has the primes: ", getPrimeFactorsFor(1155))

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

Đã trả lời ngày 15 tháng 7 năm 2021 lúc 14:56

Tôi mới bắt đầu JavaScript nhưng tôi đã tìm ra giải pháp của riêng mình cho việc này trong khi làm việc trong một dự án trường học với một mục tiêu tương tự.9 gold badges49 silver badges103 bronze badges

Vấn đề duy nhất là phải mất một thời gian rất dài cho số lượng lớn, nó không hiệu quả. Nhưng nó hoạt động hoàn hảo.Sep 6, 2018 at 10:52

1

Đã trả lời ngày 14 tháng 2 năm 2018 lúc 14:43

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
0

Nếu bạn làm việc từ phía dưới, không cần phải kiểm tra xem có yếu tố nào sau đây là chính không. Điều này là do bất kỳ số nguyên tố thấp hơn đã được chia ra.

Seph Reed

7.1169 Huy hiệu vàng49 Huy hiệu bạc103 Huy hiệu ĐồngJul 17, 2021 at 23:42

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

1

Đã trả lời ngày 6 tháng 9 năm 2018 lúc 10:52

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
1

Tôi đã tinh chỉnh chức năng này theo thời gian, cố gắng làm cho nó nhanh nhất có thể (đua nó so với các chức năng của người khác mà tôi đã tìm thấy trực tuyến, chưa tìm thấy một hoạt động chạy nhanh hơn nó).Nov 3, 2021 at 6:08

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

vitaly-tvitaly-tvitaly-t

Điều này hoạt động rất tốt với số lượng lớn so với các chức năng mà tôi đã chạy, đặc biệt là khi số là số nguyên tố, (hiếm khi chạy chậm hơn 10ms khi tôi chạy nó trong một trình biên dịch trực tuyến như OneCompiler) vì vậy nếu bạn muốn tốc độ tôi ' D nói đây là một cách khá tốt để đi về nó.11 gold badges109 silver badges130 bronze badges

Vẫn làm việc để làm cho nó thậm chí nhanh hơn, nhưng chỉ có cách bao gồm tất cả các số nguyên tố mà không cần thêm các điều kiện mới để kiểm tra là lặp lại thông qua tất cả các số lẻ.

let findPrimeFactors = (num) => {
    let arr = [];


    for ( var i = 2; i < num; i++) {
        let isPrime
        if (num % i === 0) {
            isPrime = true;
            for (var j = 2; j <= i; j++) {
                if ( i % j === 0) {
                isPrime == false;
                }
            } 
        }if (isPrime == true) { arr.push(i)}

    }console.log(arr)
}

findPrimeFactors(543)
9 có nghĩa là nó là một hàm máy phát. Vì vậy, một trình tạo được trả lại thay vì một mảng và hệ số nguyên tố tiếp theo chỉ được tính toán ngay khi nó được yêu cầu.

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
2

Đã trả lời ngày 26 tháng 4 năm 2019 lúc 14:38Apr 26, 2019 at 14:38

user42723user42723user42723

4372 Huy hiệu bạc8 Huy hiệu Đồng2 silver badges8 bronze badges

Giải pháp của tôi tránh trả lại không phải là yếu tố chính:

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
3

Đã trả lời ngày 30 tháng 10 năm 2019 lúc 8:43Oct 30, 2019 at 8:43

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

HMORVHMORVHmorv

1561 Huy hiệu bạc13 Huy hiệu đồng1 silver badge13 bronze badges

Với rất nhiều giải pháp tốt ở trên, muốn cải thiện một chút bằng cách sử dụng định lý này trong diễn đàn toán học tìm kiếm các yếu tố chính bằng cách lấy căn bậc hai.

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
4

Hy vọng câu trả lời này thêm giá trị.

Đã trả lời ngày 30 tháng 1 năm 2020 lúc 17:20Jan 30, 2020 at 17:20

Đây là một giải pháp sử dụng đệ quy

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
5

Đã trả lời ngày 18 tháng 3 năm 2020 lúc 19:42Mar 18, 2020 at 19:42

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

x7R5fQx7R5fQx7R5fQ

8492 Huy hiệu vàng12 Huy hiệu bạc24 Huy hiệu đồng2 gold badges12 silver badges24 bronze badges

Tôi đã tìm thấy giải pháp này một cách tình cờ khi tôi đang cố gắng đơn giản hóa một số giải pháp mà tôi đã thấy ở đây. Mặc dù nó không kiểm tra xem ước số có phải là số nguyên tố bằng cách nào đó nó dường như hoạt động hay không, tôi đã thử nghiệm nó với các số linh tinh nhưng tôi không thể giải thích làm thế nào điều này có thể.

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
6
function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
7

Đã trả lời ngày 8 tháng 5 năm 2020 lúc 16:56May 8, 2020 at 16:56

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

2

Tôi đã kiểm tra thuật toán với năng suất, nhưng đó là chậm hơn rất nhiều so với các cuộc gọi đệ quy.

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
8

}

function primeFactors(n) {
  const factors = [];
  let divisor = 2;

  while (n >= 2) {
    if (n % divisor == 0) {
      factors.push(divisor);
      n = n / divisor;
    } else {
      divisor++;
    }
  }
  return factors;
}

const randomNumber = Math.floor(Math.random() * 10000);
console.log('Prime factors of', randomNumber + ':', primeFactors(randomNumber).join(' '))
9

}

function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
0

Ở đây tôi cố gắng cho các yếu tố 2 và 3, theo sau là thêm 2 ANF 4 (5,7,11,13,17, ...) cho đến khi căn bậc hai của số. Mười bảy cái (không phải là Prime) mất khoảng 1 giây và mười chín (là Prime) tám giây (Firefox).

Đã trả lời ngày 24 tháng 3 năm 2021 lúc 19:10Mar 24, 2021 at 19:10

PHP và JSPHP và JSphp and js

8371 Huy hiệu vàng6 Huy hiệu bạc13 Huy hiệu đồng1 gold badge6 silver badges13 bronze badges

Dưới đây là giải pháp với hàm lồng nhau bằng phương pháp bộ lọc.

function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
1

Murph

7191 Huy hiệu bạc13 Huy hiệu đồng1 silver badge13 bronze badges

Đã trả lời ngày 15 tháng 1 lúc 14:03Jan 15 at 14:03

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

1

Mã trên (mã có vòng lặp trong khi vòng lặp) là chính xác, nhưng có một hiệu chỉnh nhỏ trong mã đó.

function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
2

Đã trả lời ngày 22 tháng 9 năm 2017 lúc 6:49Sep 22, 2017 at 6:49

Đây là giải pháp của tôi

function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
3

Đã trả lời ngày 17 tháng 11 năm 2019 lúc 15:30Nov 17, 2019 at 15:30

0

function getPrimeFactors(integer) {
  const primeArray = [];
  let isPrime;

  // Find divisors starting with 2
  for (let i = 2; i <= integer; i++) {
    if (integer % i !== 0) continue;

    // Check if the divisor is a prime number
    for (let j = 2; j <= i / 2; j++) {
      isPrime = i % j !== 0;
    }

    if (!isPrime) continue;
    // if the divisor is prime, divide integer with the number and store it in the array
    integer /= i
    primeArray.push(i);
  }

  return primeArray;
}

console.log(getPrimeFactors(13195).join(', '));
4

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

Đã trả lời ngày 9 tháng 6 năm 2021 lúc 7:11Jun 9, 2021 at 7:11

Hướng dẫn how do you find the prime factor of a number in javascript? - làm cách nào để tìm thừa số nguyên tố của một số trong javascript?

1

Làm thế nào để bạn tính đến một số trong JavaScript?

hàm factorialize (num) {// nếu num = 0 hoặc num = 1, giai thừa sẽ trả về 1 if (num === 0 || num === 1) return 1; // Chúng tôi bắt đầu vòng lặp cho i = 4 // chúng tôi giảm i sau mỗi lần lặp cho (var i = num-1; i> = 1; i--) {// Chúng tôi lưu trữ giá trị của num ở mỗi lần lặp num = num * i; // hoặc num *= i; /* Num ...

Làm thế nào để bạn tìm thấy yếu tố chính của một số?

Thực hiện theo các bước dưới đây để tìm các yếu tố chính của một số bằng phương pháp phân chia:..
Bước 1: Chia số đã cho cho số nguyên tố nhỏ nhất. ....
Bước 2: Một lần nữa, chia chỉ số cho số nguyên tố nhỏ nhất ..
Bước 3: Lặp lại quá trình, cho đến khi thương số trở thành 1 ..
Bước 4: Cuối cùng, nhân tất cả các yếu tố chính ..

Số nguyên tố trong JavaScript là gì?

Các số nguyên tố là những số không có chia chia ngoài 1 và chính số.Số nguyên tố trong JavaScript có thể được phát hiện bằng cách lặp cho đến N và kiểm tra các ước số.Một phương pháp khác được gọi là sàng của eratosthenes cũng có thể được sử dụng để tìm ra số nguyên tố của một phạm vi nhất định một cách hiệu quả.those numbers that have no divisor other than 1 and the number itself. Prime number in javascript can be detected by iterating till n and checking for the divisors. Another method known as the Sieve of Eratosthenes can also be used to find the prime numbers of a given range efficiently.

Làm thế nào để bạn tìm thấy yếu tố chính lớn nhất của một số trong JavaScript?

// tìm thấy yếu tố chính lớn nhất tìm thấy = 2165415;// số để kiểm tra!var prime = 0;loop1: for (i = 2; i var prime = 0; loop1: for (i = 2; i < find; i++){ prime = 0; if (find%i == 0){ document. write(find/i); for (j = 2; j < (find / i); j++){ if ((find / i )%j == 0){ document.