56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
---
|
|
title: Summation of primes
|
|
---
|
|
## Problem 10: Summation of primes
|
|
|
|
### Method:
|
|
- In this challenge we need to find sum of all prime numbers up to `n`.
|
|
- Example:
|
|
- If `n = 10` then prime numbers before it are `2, 3, 5, 7` and their sum is `17`.
|
|
- We've used Sieve of Eratosthenes algorithm to find prime numbers in the below solution.
|
|
|
|
### Solution:
|
|
```js
|
|
function primeSummation(n) {
|
|
|
|
// Initializing the array and sum which hold all prime numbers and the total sum, respectively
|
|
let nums = []
|
|
let sum = 0;
|
|
|
|
// Upperbound of `n`
|
|
const upperBound = Math.ceil(Math.sqrt(n));
|
|
|
|
// Making an array of `n` numbers
|
|
for (let i = 0; i < n; i++){
|
|
nums.push(i);
|
|
}
|
|
nums[1] = 0;
|
|
|
|
// Looping until the upperbound
|
|
for (let i = 2; i <= upperBound; i++){
|
|
|
|
// Skipping if the number is already 0
|
|
if (nums[i] !== 0){
|
|
|
|
// Explcitly marking all multiples of `i` 0
|
|
for (let j = i*i; j < n; j += i){
|
|
if (nums[j] % i == 0) {
|
|
nums[j] = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Sum and return all values in the array up to `n`
|
|
for (let i = 0; i < n; i++){
|
|
sum += nums[i];
|
|
}
|
|
return sum;
|
|
}
|
|
```
|
|
|
|
- [Run Code](https://repl.it/@ezioda004/Project-Euler-Problem-10-Summation-of-primes)
|
|
|
|
### References:
|
|
- Sieve of Eratosthenes [Wikipedia](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)
|