Заказ закрыт
задание С++

Бюджет: по договоренности
Писать надо на с++

Требуется небольшое изменение в модуле z64. Изменение делать в программе, которую я прислал. 
Изменения нужно делать с комментарием. И сделать отчет. 

В решете Эратосфена хранится список простых чисел. 
Простейший варинант: для каждого целого числа n признак: простое или 
нет. Таким образом, можно в один байт упаковать сведения о 8 
натуральных числах, например: 

240 241 242 243 244 245 246 247 
- + – - – - – - 

Такой способ хранения явно избыточен: четные числа никогда не будут 
простыми (2 будем обрабатывать отдельно). Поэтому у решете будем 
хранить только признаки нечетных чисел: 

241 243 245 247 249 251 253 255 
+ – - – - + – - 

Таким образом, один байт будет хранить информацию о простоте 16 чисел: 
от 16*k до 16*k+15, в примере выше от 240 до 255. Именно такой вариант 
сейчас реализован в модуле z64. 

Например, для хранения решета вполоть до 1 млрд., требуется 
1000000000/16 ~62М байт памяти. 

Но такой способ хранения опять не самый экономный. Например, не 
обязательно хранить сведения о простоте чисел кратных 3 или 5 – 
они всегда составный. 

Новый способ хранения предлагается такой. Насмотрим числовой интервал 
длины 30, от 30*k до 30k+29. 

Числа вида 30*k, 30*k+2, 30*k+4, ... 30*k+28 всегда делятся на 2. 
Числа вида 30*k+3, 30*k+6, ... 30*k+27 всегда делятся на 3. 
Числа вида 30*k+5, 30*k+10, ... 30*k+25 всегда делятся на 5. 

Числа, которые могут быть как простыми, так и составными – это 

30*k+ 1, 30*k+ 7, 30*k+11, 30*k+13, 
30*k+17, 30*k+19, 30*k+23, 30*k+29 

то есть только 8 штук. Признаки их простоты и будем хранить в одном 
байте, например 

241 247 251 253 257 259 263 269 
+ – + – + – + + 

Таким образом, один байт будет хранить информацию о простоте 30 чисел: 
от 30*k до 30*k+29, в примере выше от 240 до 269. Именно такой вариант 
и надо реализовать. 

То есть надо изменить функцию z64::Efill.
Опубликован 15.04.2015 в 15:02
Заказ находится в архиве

Выберите способ верификации:

Обновите страницу после прохождения верификации.