915 B
915 B
There are many algorithms for this task.
Let's use a nested loop:
For each i in the interval {
check if i has a divisor from 1..i
if yes => the value is not a prime
if no => the value is a prime, show it
}
The code using a label:
let n = 10;
nextPrime:
for (let i = 2; i <= n; i++) { // for each i...
for (let j = 2; j < i; j++) { // look for a divisor..
if (i % j == 0) continue nextPrime; // not a prime, go next i
}
alert( i ); // a prime
}
There's a lot of space to opimize it. For instance, we could look for the divisors from 2
to square root of i
. But anyway, if we want to be really efficient for large intervals, we need change the approach and rely on advanced maths and complex algorithms like Quadratic sieve, General number field sieve etc.