Помогите разобрать код

К ак он работает последовательно, что откуда и куда, некоторые моменты непонятны...

function showPrimes(n) {
  for (let i = 2; i < n; i++) {
    if(!isPrime(i)) continue;
     alert(i);
    }
   
}

showPrimes(10)
function isPrime(n) {
  for(let i = 2; i < n; i++) {
    if(n % i == 0) return false;
   }
    return true;
  }

Как все последовательно по пунктам, откуда значение берется, как переходит и куда, и вот здесь тоже конкретнее if(!isPrime(i)) , почему именно параметр берется i, как это переходит от функции к функции последовательно


Ответы (1 шт):

Автор решения: dmitriy_vlz

Общий смысл в том, что у тебя есть функция isPrime в которую ты передаешь как аргумент число из текущей итерации цикла функции showPrimes()

/*
/ Функция показа простых чисел в промежутке до N
*/
function showPrimes(n) {
  for (let i = 2; i < n; i++) { //Перебираем числа от 2 до N
    if(!isPrime(i)) continue; //Передаем число внутри цикла как параметр для ф-ии , проверяющей число на простоту
     alert(i); 
    }
   
}

showPrimes(10)

/*
* Ф-я проверяющая число на простоту
* Простое число — число, имеющее ровно два различных натуральных делителя — единицу и самого себя.
*/
function isPrime(n) {
 //Перебираем все числа в промежутке от 2 до текущего, переданного в ф-ю как агрумент
  for(let i = 2; i < n; i++) {
    if(n % i == 0) return false; //Если число делиться без остатка на число отличное от 1 и самого числа  - возвращем false - число не простое
   }
   //Иначе - TRUE - число простое
    return true;
  }

→ Ссылка