Трюк дня. Простые числа. Решение.



Простое число - натуральное (целое положительное) число, имеющее ровно два различных натуральных делителя — единицу и самого себя.



Для начала создадим набор чисел от 2 до 1000 с помощью функции generate_series.



Затем с помощью NOT EXISTS (которое можно, модифицировав, заменить на JOIN) мы соединяем таблицу саму на себя и затем выбираем только те значения, для которых ни одно деление на меньшее число не дает остаток 0.



WITH x AS (

SELECT * FROM generate_series( 2, 1000 ) x

)

SELECT x.x

FROM x

WHERE NOT EXISTS (

SELECT 1 FROM x y

WHERE x.x > y.x AND x.x % y.x = 0

);



#tips