Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
 Заголовок сообщения: Re: Массив простых чисел
СообщениеДобавлено: 04 июн 2019, 04:39 
Не в сети
Мастер
Зарегистрирован:
02 июн 2018, 08:50
Сообщений: 226
Cпасибо сказано: 7
Спасибо получено:
28 раз в 28 сообщениях
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
slava_psk писал(а):
Как же вам эти числа не надоели...

Почему они должны надоесть?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Массив простых чисел
СообщениеДобавлено: 05 июн 2019, 10:24 
Не в сети
Мастер
Зарегистрирован:
02 июн 2018, 08:50
Сообщений: 226
Cпасибо сказано: 7
Спасибо получено:
28 раз в 28 сообщениях
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Немного подправил код. И хотя в прежней версии все считалось правильно в новой версии это выглядит нагляднее, к тому же избавляемся от лишних операций умножения. Плюсом в прежней версии для ряда ячеек были повторные, лишние операции обнуления, здесь их нет.

!Без деления задаем границу массива
!но при этом явно указываем шаг просеивания
forall (i=4 :100:2) a(i) = 0
forall (i=9 :100:3) a(i) = 0
forall (i=25:100:5) a(i) = 0
forall (i=49:100:7) a(i) = 0


Дополнительно цикл подсчета размера выжимки заменен матричной операцией count с вычислением числа полезных элементов по маске. Итого код получился более понятным, компактным и при этом столь же быстрым:

program eratosfen
implicit none
integer :: a(2:100), j, n

forall (j=2:100) a(j) = j

n = 2
do while (n*n < 100)

forall (j = n*n : 100 : n) a(j) = 0
n = n + 1

do while (a(n)==0)
n = n + 1
end do
end do

n = count (a/=0); n = n + 1

a(2:n) = pack (a, a/=0)

print 100, a(2:n)

100 format (10i5)
end program eratosfen

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему    На страницу Пред.  1, 2, 3  Страница 3 из 3 [ Сообщений: 22 ]

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Дан массив целых чисел. Найти максимальное число. Сделать в

в форуме Информатика и Компьютерные науки

Nesquik60

0

510

29 июн 2014, 14:02

Формула простых чисел?

в форуме Теория чисел

Ferma

18

622

05 дек 2018, 21:11

Список простых чисел

в форуме Теория чисел

vinnik

9

670

07 янв 2015, 16:20

Тройки простых чисел

в форуме Теория чисел

Claudia

5

286

18 июн 2018, 13:13

Изучение простых чисел

в форуме Теория чисел

grubby

4

604

16 июн 2014, 16:59

Группы простых чисел

в форуме Теория чисел

vorvalm

4

666

03 дек 2014, 15:00

Поиск простых чисел

в форуме Теория чисел

stivsh

7

1197

24 май 2013, 15:45

Формула простых чисел

в форуме Теория чисел

Xenobius

4

446

15 июл 2016, 08:01

Анализ простых чисел

в форуме Теория чисел

Nozdre

18

730

20 май 2019, 23:01

Свойства простых чисел

в форуме Палата №6

Galina Alexandrovna

12

979

21 июл 2016, 07:14


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2019 MathHelpPlanet.com. All rights reserved