From eba44b9af51da7f45f640836e206d72c92832590 Mon Sep 17 00:00:00 2001 From: Iskander Khafizov <126507127+UnKnownHelp69@users.noreply.github.com> Date: Sat, 31 Jan 2026 10:25:48 +0300 Subject: [PATCH] Update eratosthenes.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправлена опечатки реализации линрешета: вместо массива d использовался массив p и исправлено условие выхода из внутреннего цикла, где вместо d[k] * x должно быть k * x, потому что мы размечаем именно числа k * x, а не d[k] * x (контпример n = 40, k = 15, x = 3 x > d[k] - false (d[15] = 3, x = 3) x * d[k] > n (3 * 3 = 9 <= 40) =>продолжаем работу в цикле d[x * k] = d[45] - размечаем то, что не должны(n = 40)) --- content/russian/cs/factorization/eratosthenes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/russian/cs/factorization/eratosthenes.md b/content/russian/cs/factorization/eratosthenes.md index acf47749..ed5a436c 100644 --- a/content/russian/cs/factorization/eratosthenes.md +++ b/content/russian/cs/factorization/eratosthenes.md @@ -87,12 +87,12 @@ int d[n + 1]; vector p; for (int k = 2; k <= n; k++) { - if (p[k] == 0) { + if (d[k] == 0) { d[k] = k; p.push_back(k); } for (int x : p) { - if (x > d[k] || x * d[k] > n) + if (x > d[k] || x * k > n)             break;     d[k * x] = x; }