renovations

This commit is contained in:
Ilya Kantor 2015-01-11 01:54:57 +03:00
parent 4b8b168fd2
commit c7d4c7e3ff
172 changed files with 869 additions and 244 deletions

View file

@ -0,0 +1,40 @@
Их сумма равна `1060`.
```js
//+ run
// шаг 1
var arr = [];
for (var i=2; i<100; i++) {
arr[i] = true
}
// шаг 2
var p = 2;
do {
// шаг 3
for (i=2*p; i<100; i+=p) {
arr[i] = false;
}
// шаг 4
for (i=p+1; i<100; i++) {
if (arr[i]) break;
}
p = i;
} while (p*p < 100); // шаг 5
// шаг 6 (готово)
// посчитать сумму
var sum = 0;
for (i=0; i<arr.length; i++) {
if (arr[i]) {
sum += i;
}
}
alert(sum);
```

View file

@ -0,0 +1,25 @@
# Решето Эратосфена
[importance 3]
Целое число, большее `1`, называется *простым*, если оно не делится нацело ни на какое другое, кроме себя и `1`.
Древний алгоритм "Решето Эратосфена" для поиска всех простых чисел до `n` выглядит так:
<ol>
<li>Создать список последовательных чисел от `2` до `n`: `2, 3, 4, ..., n`.</li>
<li>Пусть `p=2`, это первое простое число.</li>
<li>Зачеркнуть все последующие числа в списке с разницей в `p`, т.е. `2*p, 3*p, 4*p` и т.д. В случае `p=2` это будут `4,6,8...`.</li>
<li>Поменять значение `p` на первое незачеркнутое число после `p`.</li>
<li>Повторить шаги 3-4 пока <code>p<sup>2</sup> &lt; n</code>.</li>
<li>Все оставшиеся незачеркнутыми числа -- простые.</li>
</ol>
Посмотрите также <a href="/files/tutorial/intro/array/sieve.gif">анимацию алгоритма</a>.
Реализуйте "Решето Эратосфена" в JavaScript, используя массив.
Найдите все простые числа до `100` и выведите их сумму.