Home primes: Difference between revisions
Content added Content deleted
(Added Wren) |
Thundergnat (talk | contribs) (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 |
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 |
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( |
HP10(4) = HP25(3) = HP55(2) = HP511(1) = 773 |
||
HP10 = 2 × 5 => 25; HP25( |
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 |
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: ' = '), |
|||
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 |
HP4(2) = HP22(1) = 211 |
||
HP5 = 5 |
HP5 = 5 |
||
HP6 |
HP6(1) = 23 |
||
HP7 = 7 |
HP7 = 7 |
||
HP8 = HP222( |
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 |
HP9(2) = HP33(1) = 311 |
||
HP10 = HP25( |
HP10(4) = HP25(3) = HP55(2) = HP511(1) = 773 |
||
HP11 = 11 |
HP11 = 11 |
||
HP12 |
HP12(1) = 223 |
||
HP13 = 13 |
HP13 = 13 |
||
HP14 = HP27( |
HP14(5) = HP27(4) = HP333(3) = HP3337(2) = HP4771(1) = 13367 |
||
HP15 = HP35( |
HP15(4) = HP35(3) = HP57(2) = HP319(1) = 1129 |
||
HP16 = HP2222( |
HP16(4) = HP2222(3) = HP211101(2) = HP3116397(1) = 31636373 |
||
HP17 = 17 |
HP17 = 17 |
||
HP18 |
HP18(1) = 233 |
||
HP19 = 19 |
HP19 = 19 |
||
HP20 = HP225( |
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( |
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}}== |