_РежимОтладки = Ложь;
Н = 10000000;
Массив = Новый Массив(Н);
Массив.Добавить(Ложь);
Массив.Добавить(Ложь);
Для индекс = 2 По Н Цикл Массив[индекс] = Истина КонецЦикла;
времяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
Если _РежимОтладки Тогда // Можно менять на Истина в точке останова, например условием ирОбщий.Пр(_РежимОтладки, 1, 1)
// Пассивный оригинал расположенного ниже однострочного кода. Выполняйте изменения синхронно в обоих вариантах.
Для индекс = 2 По Н Цикл
Если Массив[индекс] Тогда
квадрат = индекс * индекс;
Если квадрат <= Н Тогда
м = квадрат;
Пока м <= Н Цикл
Массив[м] = Ложь;
м = м + индекс;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Иначе
// Однострочный код использован для ускорения при разрешенной отладке. Выше расположен оригинал. Выполняйте изменения синхронно в обоих вариантах. Преобразовано консолью кода из подсистемы "Инструменты разработчика"
Для индекс = 2 По Н Цикл Если Массив[индекс] Тогда квадрат = индекс * индекс; Если квадрат <= Н Тогда м = квадрат; Пока м <= Н Цикл Массив[м] = Ложь; м = м + индекс; КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла;
КонецЕсли;
времяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах();
Сообщить("" + (времяОкончания - времяНачала)/1000);
{"contextData":{},"contextMarkers":[]}