Решето Эратосфена на js

223
23 февраля 2021, 14:00

Дано число n (n > 1). Выведите строку, состоящую из простых чисел, меньших n. Воспользуйтесь решетом Эратосфена. Единицу не считаем простым числом. Какой самый удобный способ вывести в результате не массив, а строку (без методов можно?)?

var array = [], limit = Math.sqrt(n), result = [];
    // Создаю массив от 2 до (n - 1)
    for (var i = 2; i < n; i++) {
        array.push(true);
    }
    // Удаляю кратные 2, 3, 5...
    for (var i = 2; i <= limit; i++) {
        if (array[i]) {
            for (var j = i * i; j < n; j += i) {
                array[j] = false;
            }
        }
    }
    // Все значения массива [i] true являются простыми числами
    for (var i = 2; i < n; i++) {
        if(array[i]) {
            result.push(i);
        }
    }
    return result;
};
Answer 1

Собирайте сразу строку

——-

var result = "";
...
if (array[i]) {
   result += " " + i
}
return result;
Answer 2

Если хотите получить строку без методов, реализуйте метод join самостоятельно:

function primes(N) { 
  let res = [2]; 
  for (let i = 3; i < N; i+=2) { 
    let isPrime = true; 
    for (let k = 0, limit = Math.sqrt(i); res[k] <= limit; ++k) { 
      let d = res[k]; 
      if (i % d == 0) {isPrime = false;break;} 
    } 
    if (isPrime) res.push(i); 
  } 
  return res; 
} 
 
let res = primes(100); 
 
// res.join(', ') 
function list_join(list, sep = ',') { 
  let str = ''; 
  for (let i = 0; i < list.length; ++i) { 
    let el = list[i]; 
    str += el; 
    if (i < list.length-1) str += sep; 
  } 
  return str; 
} 
 
console.log(res.length); 
console.log(list_join(res, ', '));

READ ALSO
Await Promise.race(&hellip;)

Await Promise.race(…)

Как правильно использовать await с Promiserace? Пример:

131
Динамический select

Динамический select

Всем привет

112
Нужно отправить данные из формы ajaxom

Нужно отправить данные из формы ajaxom

Полученные данные из формы после того как форма прошла проверку нужно отправить ajaxom в контроллер а из его в базу данныхПожалуйста помогите...

114
Удалить объект из массива, проводник?

Удалить объект из массива, проводник?

Подскажите как можно удалить "папку" (объект) при нажатии кнопки в нашем дереве

120