aboutsummaryrefslogtreecommitdiff
path: root/challenge-148/luca-ferrari/postgresql/ch-2.sql
blob: 5d178955a14ee996868c75ac9fc9d33c4b0a6f0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
WITH RECURSIVE
triplets AS
(
        SELECT a::numeric, b::numeric, c::numeric
        FROM generate_series( 1, 30 ) a
             , generate_series( 1, 30 ) b
             , generate_series( 1, 30 ) c
        ORDER BY a, b, c
)
, cardano_sum AS
(
        SELECT a, b, c,
               ( a + b * sqrt( c ) )   AS l
               ,( a - b * sqrt( c ) )  AS r
               FROM triplets
)
, cardano AS
(
        SELECT a, b, c, l, r
               , CASE WHEN l < 0 THEN -1 ELSE 1 END * pow( abs( l )::numeric, 1/3::numeric )
               + CASE WHEN r < 0 THEN -1 ELSE 1 END * pow( abs( r )::numeric, 1/3::numeric )
               AS triplet_sum
               FROM cardano_sum
)

SELECT *
FROM cardano
WHERE
abs( 1 - triplet_sum::numeric ) <= 0.0000000001
LIMIT 5
;