diff --git a/Скрипты/РешетоЭратосфена.sbsl b/Скрипты/РешетоЭратосфена.sbsl new file mode 100644 index 0000000..a4d72ee --- /dev/null +++ b/Скрипты/РешетоЭратосфена.sbsl @@ -0,0 +1,51 @@ +#!/usr/bin/executor + +/******************************************************************************* + * Copyright (c) 2020 Alexander Kapralov and Contributors + * This program and the accompanying materials are made available under + * the terms of the BSD 3-Clause License which is available at + * https://spdx.org/licenses/BSD-3-Clause.html#licenseText + * + * SPDX-License-Identifier: BSD-3-Clause + * + * Contributors: + * Andrei Ovsiankin - Алгоритм + * + ******************************************************************************/ + +метод Скрипт() + ВычислитьЭлементы(100) + ВычислитьЭлементы(5000000) + ВычислитьЭлементы(50000000) +; + +метод ВычислитьЭлементы(н: Число) + пер массив = новый Массив() + + массив.Добавить(Ложь) + массив.Добавить(Ложь) + + для индекс = 2 по н + массив.Добавить(Истина) + ; + + знч времяНачала = ДатаВремя.Сейчас() + для индекс = 2 по н + если массив[индекс] + пер квадрат = индекс * индекс + если квадрат <= н + пер м = квадрат + пока м <= н + массив[м] = Ложь + м += индекс + ; + ; + ; + ; + + знч времяОкончания = ДатаВремя.Сейчас() + знч мсЦикла = (времяОкончания - времяНачала).ВМиллисекундах() + знч сЦикла = мсЦикла / 1000 + Консоль.Записать("%н: %сЦикла") +; +