en.javascript.info/1-js/2-first-steps/15-while-for/7-list-primes/solution.md
2015-01-21 11:37:57 +03:00

1.5 KiB
Raw Blame History

Схема решения

Для всех i от 1 до 10 {
 проверить, делится ли число i на какое-либо из чисел до него
   если делится, то это i не подходит, берем следующее
   если не делится, то i - простое число
}

Решение

Решение с использованием метки:

//+ run
nextPrime: 
for(var i=2; i<10; i++) {

  for(var j=2; j<i; j++) {
    if ( i % j == 0) continue nextPrime;
  }
  
  alert(i);  // простое
}

Конечно же, его можно оптимизировать с точки зрения производительности. Например, проверять все j не от 2 до i, а от 2 до квадратного корня из i. А для очень больших чисел -- существуют более эффективные специализированные алгоритмы проверки простоты числа, например квадратичное решето и решето числового поля.