From b3aeb665d757158d9c558169b9d791537cb44f96 Mon Sep 17 00:00:00 2001 From: Jaime <42359730+bracteatus@users.noreply.github.com> Date: Fri, 14 Jun 2019 06:33:25 -0600 Subject: Update ch-1.pl Iterate primorial numbers to find the first Euclid number that is not prime. --- challenge-012/jaime/perl5/ch-1.pl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/challenge-012/jaime/perl5/ch-1.pl b/challenge-012/jaime/perl5/ch-1.pl index 3ecead2762..935c585fd5 100644 --- a/challenge-012/jaime/perl5/ch-1.pl +++ b/challenge-012/jaime/perl5/ch-1.pl @@ -6,3 +6,19 @@ # primes are called the Euclid Numbers (see wiki). Write a script that # finds the smallest Euclid Number that is not prime. +sub is_prime { # is a given positive integer an odd prime? + my ($n) = @_; + for (my $i = 3; $i < $n; $i += 2) { # determine if odd number is prime. + return 0 unless $n % $i; + } + return 1; # odd number is prime. +} + +my $p = 2; # start with second primorial +for (my $i = 3; ;$i += 2) { + next unless is_prime $i; + $p *= $i; # next primorial + last unless is_prime 1+$p; +} + +print 1+$p; -- cgit