aboutsummaryrefslogtreecommitdiff
path: root/challenge-146/andrezgz/perl/ch-1.pl
blob: a7c3477f5035acba1b0596f538f34d763ad971e8 (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
#!/usr/bin/perl

# https://theweeklychallenge.org/blog/perl-weekly-challenge-146/
# TASK #1 > 10001st Prime Number
#
# Write a script to generate the 10001st prime number.

use strict;
use warnings;
use feature 'say';

my $n = 1;
my $count = 0;

do {} until (is_prime(++$n) && ++$count == 10001 && print $n);

sub is_prime {
    my $n = shift;
    #every composite number has a prime factor less than or equal to its square root.
    return 1 == grep {$n % $_ == 0} (1 .. sqrt $n);
}

__END__

$ time ./ch-1.pl
104743
real    0m2.137s
user    0m2.106s
sys     0m0.030s