Derse geri dön

Output prime numbers

önem: 3

1 den büyük olup 1 veya kendisi haricinde hiçbir sayıya kalansız bölünemeyen sayılara asal sayı denir.

Örneğin 5 bir asal sayıdır. Çünkü 2,3 ve 4 e kalansız bölünemez.

2 den ne kadar olan asal sayıları bulan kodu yazınız.

Örneğin n = 10 için sonuç 2,3,5,7 olacaktır.

NOT: Kod her türlü n değeri için çalışmalıdır, sabit bir sayı değildir.

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 to change the approach and rely on advanced maths and complex algorithms like Quadratic sieve, General number field sieve etc.