From 8bcffac9c9e8e4c75202d83ee46690bdded48b20 Mon Sep 17 00:00:00 2001 From: Peter Campbell Smith Date: Wed, 30 Mar 2022 17:37:59 +0100 Subject: My submissions for week 158 --- challenge-158/peter-campbell-smith/blog.txt | 1 + challenge-158/peter-campbell-smith/perl/ch-1.pl | 24 ++++++++++++++++++++++ challenge-158/peter-campbell-smith/perl/ch-2.pl | 27 +++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 challenge-158/peter-campbell-smith/blog.txt create mode 100755 challenge-158/peter-campbell-smith/perl/ch-1.pl create mode 100755 challenge-158/peter-campbell-smith/perl/ch-2.pl diff --git a/challenge-158/peter-campbell-smith/blog.txt b/challenge-158/peter-campbell-smith/blog.txt new file mode 100644 index 0000000000..da7548e462 --- /dev/null +++ b/challenge-158/peter-campbell-smith/blog.txt @@ -0,0 +1 @@ +https://pjcs-pwc.blogspot.com/2022/03/all-about-primes.html diff --git a/challenge-158/peter-campbell-smith/perl/ch-1.pl b/challenge-158/peter-campbell-smith/perl/ch-1.pl new file mode 100755 index 0000000000..10bac15e5d --- /dev/null +++ b/challenge-158/peter-campbell-smith/perl/ch-1.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl + +# Peter Campbell Smith - 2022-03-30 +# PWC 158 task 1 + +use v5.28; +use strict; +use warnings; +use utf8; + +use Math::Prime::Util 'is_prime'; + +# Write a script to find out all Additive Primes <= 100. +# Additive primes are prime numbers for which the sum of their decimal digits are also primes. + +# blog: https://pjcs-pwc.blogspot.com/2022/03/all-about-primes.html + +my ($j, $s); + +for $j (1 .. 100) { + next unless is_prime($j); + $s = $j % 10 + int($j / 10) % 10 + int($j / 100) % 10; + say qq[$j is an additive prime whose digits sum to $s] if is_prime($s); +} diff --git a/challenge-158/peter-campbell-smith/perl/ch-2.pl b/challenge-158/peter-campbell-smith/perl/ch-2.pl new file mode 100755 index 0000000000..5e887588b9 --- /dev/null +++ b/challenge-158/peter-campbell-smith/perl/ch-2.pl @@ -0,0 +1,27 @@ +#!/usr/bin/perl + +# Peter Campbell Smith - 2022-03-30 +# PWC 158 task 2 + +use v5.28; +use strict; +use warnings; +use utf8; +use Math::Prime::Util 'is_prime'; + +my ($y, $test, $result); + +# Write a script to compute first series Cuban Primes <= 1000. +# The first Cuban prime series terms are values of 3y^2 + 3y + 1 for y = 1 .. which are prime + +# blog: https://pjcs-pwc.blogspot.com/2022/03/all-about-primes.html + +$test = 7; # 3 * $y**2 + 3 * $y + 1 for y == 1 +for $y (1 .. 1000) { + last if $test > 1000; + $result .= qq[$test, ] if is_prime($test); + $test += 6 * ($y + 1); +} + +say qq[The terms of the first Cuban series <= 1000 are:]; +say substr($result, 0, -2) . '.'; -- cgit