44 FreeBasic Скатерть Улама

Скатерть Улама(спираль Улама)

Однажды один математик заскучал на скучном мероприятии. И чтобы скоротать время он начал выписываь числа по спирали, нечина с середины, точно так как мы рисовали квадратную спираль.

А потом он решил отметить(закрасить) простые числа... Давайте и мы сделаем так - уже практически всё готово - 27, 28, 42, 43

Нужно только написать функцию которая будет определять простое это число или нет.

function prost(byval r as integer) as integer
dim as integer i
    
    for i=2 to sqr(r)
        if (r mod i) = 0 then return -2
    next i
    return 0
    
end function

и вызывать её из основной программы

x=512: y=384: z=1

screenres 1024,768

for i=1 to 768

    for k=0 to 1
    
        if (2*i+k) mod 4 = 1 then dx=1: dy=0
        if (2*i+k) mod 4 = 2 then dx=0: dy=1
        if (2*i+k) mod 4 = 3 then dx=-1:dy=0
        if (2*i+k) mod 4 = 0 then dx=0: dy=-1
    
        for j=1 to i
            if prost(z)=0 then pset(x,y),15
            x+=dx: y+=dy: z+=1
        next j
    next k    
    
next i

sleep

Вот результат -

Немного увеличил

Видно что простые числа вістраиваются в линии)))

Эту удивительную картину Станислав Улам придумал в 1963 году. А позже другие математики создали её варианты расположив простые числа в иных фигурах.

Лауренце Монро Клаубер расположил числа в треугольнике, а Роберт Сакс расположил их по Архимедовой спирали.

программированиеfreebasicsgfbsgpgbotbod
801
445.564 GOLOS
0
В избранное
Сергей
Кибернетик... а кто это? deals.weku.io/@sergiy, serey.io/@sergiy, whaleshares.io/@sergiy, sola.ai/nsergiy
801
0
Комментарии (8)
Сортировать по:
Сначала старые
Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий
Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.