Hướng dẫn sum of prime numbers from 1 to 100 in javascript - tổng các số nguyên tố từ 1 đến 100 trong javascript

Tôi đang làm việc với một bản thi để tổng hợp tất cả các số nguyên tố từ 2 vào tham số. Tôi đã làm việc này trong mã này, nhưng tôi bị mắc kẹt. Tôi tin rằng bằng cách sử dụng hàm splice, tôi thực sự bỏ qua một yếu tố vì một chỉ số thay đổi.

function sumPrimes[num] {
  var primearray = [];
  var sum = 0;
  for[var i =2; i 2]] {
      primearray.splice[j,1];
    } else if [[primearray[j]%3===0] && [primearray[j] > 3]] {
      primearray.splice[j,1];
      console.log[primearray];
    } else if [[primearray[j]%5===0] && [primearray[j] > 5]] {
      primearray.splice[j,1];
    } else if [[primearray[j]%7===0] && [primearray[j] > 7]] {
      primearray.splice[j,1];
    }
  }
  sum = primearray.reduce[];
  return sum;
}

sumPrimes[30];

Tôi chưa sử dụng chức năng giảm vì tôi vẫn đang làm việc trên các câu lệnh khác.

Đã hỏi ngày 24 tháng 6 năm 2015 lúc 16:34Jun 24, 2015 at 16:34

3

Tôi đã tìm thấy một giải pháp khá tốt cho cùng một vấn đề. Afmeva đã được phát hiện. Đây là cách nó hoạt động.

function isPrime[val]{

  //test if number is prime
  for[var i=2; i < val; i++]{
    if[val % i === 0]{
      return false;
    }
  }
  return true;
}

Trong mã trên, chúng tôi chấp nhận một số để xác định xem nó có phải là chính hay không. Sau đó, chúng tôi lặp lại từ hai con đường cho đến khi số của chúng tôi trừ đi một số vì chúng tôi biết rằng số của chúng tôi sẽ được chia cho chính nó và một. Nếu phần còn lại của giá trị của chúng tôi với giá trị vòng lặp hiện tại bằng 0 thì chúng tôi biết nó không phải là nguyên tố nên thoát ra và nói như vậy.

Bài viết này giải thích rất tốt

function sumPrimes[num] {
  var answer = 0;

  //loop through all numbers from 2 to input value

  for[var i=2; i  k].slice[2]; 
  
  let onlyPrimes = arr.filter[ [n] => { 
    let m = n-1;
    while [m > 1 && m >= Math.sqrt[n]] { 
      if [[n % m] === 0] 
        return false;
        m--;
    }
      return true;
  }];
    return onlyPrimes.reduce[[a,b] => a+b]; 
}
sumPrimes[977];

Đã trả lời ngày 8 tháng 9 năm 2019 lúc 14:49Sep 8, 2019 at 14:49

IffyiffyIffy

796 Huy hiệu Đồng6 bronze badges

Tôi đã thấy rất nhiều người đặt tất cả các số nguyên tố vào mảng và để kiểm tra xem một số là số nguyên tố, họ kiểm tra từ 2 đến số để xem có còn lại không. Bạn chỉ cần kiểm tra các số lẻ và chỉ cần tính đến một nửa số vì một số không thể chia hết cho bất kỳ số nào lớn hơn so với nó có. Đây là giải pháp của tôi:

function sumPrimes[num]{
    var sum = num>=2?2:0;
    for[var i=3;i

Bài Viết Liên Quan

Chủ Đề