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

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

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

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




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

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

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

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

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

!Без деления задаем границу массива
!но при этом явно указываем шаг просеивания
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

523

29 июн 2014, 14:02

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

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

Nozdre

18

757

20 май 2019, 23:01

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

в форуме Размышления по поводу и без

Tirpa

26

310

22 авг 2019, 23:30

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

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

vinnik

9

687

07 янв 2015, 16:20

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

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

grubby

4

636

16 июн 2014, 16:59

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

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

Xenobius

4

483

15 июл 2016, 08:01

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

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

stivsh

7

1231

24 май 2013, 15:45

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

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

Ferma

18

667

05 дек 2018, 21:11

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

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

Galina Alexandrovna

12

1025

21 июл 2016, 07:14

Последовательность простых чисел

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

DeD

2

355

28 мар 2017, 01:43


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



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

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


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

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

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

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