diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2021-11-29 15:58:12 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2021-11-29 15:58:12 +0100 |
| commit | c62eea0af3ad4e45249f0c17ea597f2b220aad60 (patch) | |
| tree | f2ff05fcf8a83d2714084186c7d2c970d75241f4 | |
| parent | 69686f4bcbe2412b8a50ba9dd490dc335d5acb8e (diff) | |
| download | perlweeklychallenge-club-c62eea0af3ad4e45249f0c17ea597f2b220aad60.tar.gz perlweeklychallenge-club-c62eea0af3ad4e45249f0c17ea597f2b220aad60.tar.bz2 perlweeklychallenge-club-c62eea0af3ad4e45249f0c17ea597f2b220aad60.zip | |
Task 1 in PostgreSQL
| -rw-r--r-- | challenge-141/luca-ferrari/postgresql/ch-1.sql | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/challenge-141/luca-ferrari/postgresql/ch-1.sql b/challenge-141/luca-ferrari/postgresql/ch-1.sql new file mode 100644 index 0000000000..c68e881175 --- /dev/null +++ b/challenge-141/luca-ferrari/postgresql/ch-1.sql @@ -0,0 +1,32 @@ +CREATE OR REPLACE FUNCTION +f_find_divisors( divisors int default 8, count int default 10 ) +RETURNS SETOF int +AS $CODE$ +DECLARE + current_number int; + current_divisor int; + current_found int; +BEGIN + FOR current_number IN 1 .. 999999 LOOP + IF count = 0 THEN + EXIT; + END IF; + + current_found := 0; + + FOR current_divisor IN 1 .. current_number LOOP + IF current_number % current_divisor = 0 THEN + current_found := current_found + 1; + END IF; + END LOOP; + + IF current_found = divisors THEN + count := count - 1; + RETURN NEXT current_number; + END IF; + END LOOP; + + RETURN; +END +$CODE$ +LANGUAGE plpgsql; |
