blob: 2f7e7d5d405c83142737cd2211d1f0feb0a2ad74 (
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
32
33
34
35
36
37
38
|
-- Perl Weekly Challenge 170
-- Task 1
CREATE SCHEMA IF NOT EXISTS pwc170;
CREATE OR REPLACE FUNCTION
pwc170.task1_plperl( int)
RETURNS SETOF bigint
AS $CODE$
my ($limit) = @_;
# utility function to check if a
# number if prime
my $is_prime = sub {
my ($value) = @_;
for my $i ( 2 .. $value - 1 ) {
return undef if $value % $i == 0;
}
return 1;
};
my @primes;
for ( 1 .. 999999 ) {
last if $#primes >= $limit;
next if ! $is_prime->( $_ );
push @primes, $_;
my $v = 1;
$v *= $_ for ( @primes );
return_next( $v );
}
return undef;
$CODE$
LANGUAGE plperl;
|