1
0
mirror of https://github.com/DoublesunRUS/devscripts.git synced 2026-06-20 01:16:55 +02:00

Решето Эратосфена

This commit is contained in:
Капралов Александр
2021-02-25 13:27:01 +03:00
parent 8e0f3ee7d9
commit abcaf52570
@@ -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
Консоль.Записать("%н: %сЦикла")
;