It's a primathon!
Simon Green
Posted on April 3, 2022
Weekly Challenge 158
Happy 3rd birthday PWC. As we know, three is a prime number, which is the theme of this weeks challenges.
Two relatively straight forward tasks this week, so not much explanation required. Both tasks use a is_prime
method which I took from a previous week. Given an integer, it will true True / False ('1' / undef in Perl) if that number is an integer.
TASK #1 › Additive Primes
Task
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.
My solution
I have a set (hash in Perl) called primes
that has the primes found so far. We know that the sum of the digits will never be higher than than the number itself.
I loop from 1 to 100, add the number to the primes
set. If the sum of the number is also a prime, I add it to the additive_primes
list (array in Perl).
Finally I display the list as output.
Example
$ ./ch-1.py
2, 3, 5, 7, 11, 23, 29, 41, 43, 47, 61, 67, 83, 89
TASK #2 › First Series Cuban Primes
Task
Write a script to compute first series Cuban Primes <= 1000.
My solution
For this task I have a counter x
that starts from one. For each number, I calculate 3x² + 3x + 1
(taken from the wikipedia page). If that number is > 1000, I exit the loop. If that number is a prime, I add it to the cuban_primes
list.
Like with the previous task, I end by printing the list. I notice that the example has a full stop at the end. Not sure if this is intentional or not.
Example
$ ./ch-2.py
7, 19, 37, 61, 127, 271, 331, 397, 547, 631, 919
Posted on April 3, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.