You've already forked devscripts
mirror of
https://github.com/DoublesunRUS/devscripts.git
synced 2026-06-20 01:16:55 +02:00
Решето Эратосфена
This commit is contained in:
@@ -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
|
||||
Консоль.Записать("%н: %сЦикла")
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user