Home primes: Difference between revisions

Content added Content deleted
(Added Wren)
(Changed iteration count from count-up to count-down to better match wikipedia. Update for modified reqs.)
Line 1: Line 1:
{{Clarified-review}}

{{draft task}}
{{draft task}}
{{Wikipedia|Home prime}}
{{Wikipedia|Home prime}}



<br>
<br>
In number theory, the '''home prime HP(n)''' of an integer '''n''' greater than 1 is the prime number obtained by repeatedly factoring the increasing concatenation of prime factors including repetitions.
In number theory, the '''home prime HP(n)''' of an integer '''n''' greater than 1 is the prime number obtained by repeatedly factoring the increasing concatenation of prime factors including repetitions.


The traditional notation has the prefix "HP" and a postfix iteration count (if the count is greater than 0).
The traditional notation has the prefix "HP" and a postfix count of the number of iterations until the Home prime is found (if the count is greater than 0).


Prime numbers are their own Home prime;
Prime numbers are their own Home prime;
Line 15: Line 18:
HP7 = 7
HP7 = 7


If the integer obtained by concatenating increasing prime factors is not prime, iterate with the iteration count until you reach a prime number; The Home prime.
If the integer obtained by concatenating increasing prime factors is not prime, iterate until you reach a prime number; the Home prime.


HP4 = HP22(1) = 211
HP4(2) = HP22(1) = 211
HP4 = 2 × 2 => 22; HP22(1) = 2 × 11 => 211; 211 is prime
HP4(2) = 2 × 2 => 22; HP22(1) = 2 × 11 => 211; 211 is prime
HP10 = HP25(1) = HP55(2) = HP511(3) = 773
HP10(4) = HP25(3) = HP55(2) = HP511(1) = 773
HP10 = 2 × 5 => 25; HP25(1) = 5 × 5 => 55; HP55(2) = 5 × 11 => 511; HP511(3) = 7 × 73 => 773; 773 is prime
HP10(4) = 2 × 5 => 25; HP25(3) = 5 × 5 => 55; HP55(2) = 5 × 11 => 511; HP511(1) = 7 × 73 => 773; 773 is prime




Line 90: Line 93:


for flat 2..20, 65 -> $m {
for flat 2..20, 65 -> $m {
my ($n, $step, @steps, @factors) = $m, 0;
my ($n, @steps, @factors) = $m, $m;
@steps.push: $n = @factors.join.Int while (@factors = prime-factors $n) > 1;
@steps.push: $n = @factors.join.Int while (@factors = prime-factors $n) > 1;
my $step = +@steps;
say "HP$m = ", (@steps.map( { "{(++$step).fmt("HP$_\(%d)")}" } ).join: ' = '),
+@steps ?? " = {@steps.tail}" !! $m;
say (@steps[0..*-2].map( { "HP$_\({--$step})" } ).join: ' = '),
(+@steps > 1 ?? '' !! "HP$m"), " = ", @steps.tail;
}</lang>
}</lang>
{{out}}
{{out}}
<pre>HP2 = 2
<pre>HP2 = 2
HP3 = 3
HP3 = 3
HP4 = HP22(1) = HP211(2) = 211
HP4(2) = HP22(1) = 211
HP5 = 5
HP5 = 5
HP6 = HP23(1) = 23
HP6(1) = 23
HP7 = 7
HP7 = 7
HP8 = HP222(1) = HP2337(2) = HP31941(3) = HP33371313(4) = HP311123771(5) = HP7149317941(6) = HP22931219729(7) = HP112084656339(8) = HP3347911118189(9) = HP11613496501723(10) = HP97130517917327(11) = HP531832651281459(12) = HP3331113965338635107(13) = 3331113965338635107
HP8(13) = HP222(12) = HP2337(11) = HP31941(10) = HP33371313(9) = HP311123771(8) = HP7149317941(7) = HP22931219729(6) = HP112084656339(5) = HP3347911118189(4) = HP11613496501723(3) = HP97130517917327(2) = HP531832651281459(1) = 3331113965338635107
HP9 = HP33(1) = HP311(2) = 311
HP9(2) = HP33(1) = 311
HP10 = HP25(1) = HP55(2) = HP511(3) = HP773(4) = 773
HP10(4) = HP25(3) = HP55(2) = HP511(1) = 773
HP11 = 11
HP11 = 11
HP12 = HP223(1) = 223
HP12(1) = 223
HP13 = 13
HP13 = 13
HP14 = HP27(1) = HP333(2) = HP3337(3) = HP4771(4) = HP13367(5) = 13367
HP14(5) = HP27(4) = HP333(3) = HP3337(2) = HP4771(1) = 13367
HP15 = HP35(1) = HP57(2) = HP319(3) = HP1129(4) = 1129
HP15(4) = HP35(3) = HP57(2) = HP319(1) = 1129
HP16 = HP2222(1) = HP211101(2) = HP3116397(3) = HP31636373(4) = 31636373
HP16(4) = HP2222(3) = HP211101(2) = HP3116397(1) = 31636373
HP17 = 17
HP17 = 17
HP18 = HP233(1) = 233
HP18(1) = 233
HP19 = 19
HP19 = 19
HP20 = HP225(1) = HP3355(2) = HP51161(3) = HP114651(4) = HP3312739(5) = HP17194867(6) = HP194122073(7) = HP709273797(8) = HP39713717791(9) = HP113610337981(10) = HP733914786213(11) = HP3333723311815403(12) = HP131723655857429041(13) = HP772688237874641409(14) = HP3318308475676071413(15) = 3318308475676071413
HP20(15) = HP225(14) = HP3355(13) = HP51161(12) = HP114651(11) = HP3312739(10) = HP17194867(9) = HP194122073(8) = HP709273797(7) = HP39713717791(6) = HP113610337981(5) = HP733914786213(4) = HP3333723311815403(3) = HP131723655857429041(2) = HP772688237874641409(1) = 3318308475676071413
HP65 = HP513(1) = HP33319(2) = HP1113233(3) = HP11101203(4) = HP332353629(5) = HP33152324247(6) = HP3337473732109(7) = HP111801316843763(8) = HP151740406071813(9) = HP31313548335458223(10) = HP3397179373752371411(11) = HP157116011350675311441(12) = HP331333391143947279384649(13) = HP11232040692636417517893491(14) = HP711175663983039633268945697(15) = HP292951656531350398312122544283(16) = HP2283450603791282934064985326977(17) = HP333297925330304453879367290955541(18) = HP1381321118321175157763339900357651(19) = 1381321118321175157763339900357651</pre>
HP65(19) = HP513(18) = HP33319(17) = HP1113233(16) = HP11101203(15) = HP332353629(14) = HP33152324247(13) = HP3337473732109(12) = HP111801316843763(11) = HP151740406071813(10) = HP31313548335458223(9) = HP3397179373752371411(8) = HP157116011350675311441(7) = HP331333391143947279384649(6) = HP11232040692636417517893491(5) = HP711175663983039633268945697(4) = HP292951656531350398312122544283(3) = HP2283450603791282934064985326977(2) = HP333297925330304453879367290955541(1) = 1381321118321175157763339900357651</pre>


=={{header|Wren}}==
=={{header|Wren}}==