Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
sergiy
5 лет назад

27 FreeBASIC - Ищем простые числа

Если кто не помнит простые числа - это числа которые не имеют делителей кроме единицы и самих себя.

Считают что простой способ нахождения простых чисел не больших данного числа придумал Эратосфен(II в до н.э.)

Выписываем числа в таблицу.
Берем первое простое число - 2 и вычеркиваем все числа кратные 2, потом кратные 3, 5,7 и т. д.


(картинка с википедии)

Если реализовывать это на компьютере прийдётся хранить числа и потом их вычёрквать. Здесь поступают проще - компьютер быстрый - пусть считает.
Берут число и ищут все его делители, проверяя сам факт делится/не делится.
Если делителей не нашлось - число простое.

'''
dim as integer f
dim as longint i, k

for k=2 to 1000
f=0
for i=2 to k-1
if k mod i = 0 then f=1
next i

if f=0 then print k;

next k

sleep
'''
Найдём например простые числа до 1000

открываем цикл от 2(самое маленькое, первое простое число до 1000)

f-переменная флаг, она останется равной нулю, если так и не было найдено делителя - значит число простое.

Если f-флаг так и остался нулём - выводим его на экран.

Всё, переход к следующему испытуемому.

Я намеренно не оптимизировал алгоритм поиска, в следующем посте узнаете почему)))

6
444.657 GOLOS
На Golos с October 2016
Комментарии (4)
Сортировать по:
Сначала старые