aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-169/james-smith/README.md229
1 files changed, 124 insertions, 105 deletions
diff --git a/challenge-169/james-smith/README.md b/challenge-169/james-smith/README.md
index 67ec30184d..94df976f68 100644
--- a/challenge-169/james-smith/README.md
+++ b/challenge-169/james-smith/README.md
@@ -44,58 +44,59 @@ The output in each row is the brilliant number and the two primes which are it's
**Moan:** Why is there no `sayf` function similar to `printf` - using `say sprintf` is just "messy" each time...
-```
- 1: 4 = 2 x 2
- 2: 6 = 2 x 3
- 3: 9 = 3 x 3
- 4: 10 = 2 x 5
- 5: 14 = 2 x 7
- 6: 15 = 3 x 5
- 7: 21 = 3 x 7
- 8: 25 = 5 x 5
- 9: 35 = 5 x 7
- 10: 49 = 7 x 7
- 11: 121 = 11 x 11
- 12: 143 = 11 x 13
- 13: 169 = 13 x 13
- 14: 187 = 11 x 17
- 15: 209 = 11 x 19
- 16: 221 = 13 x 17
- 17: 247 = 13 x 19
- 18: 253 = 11 x 23
- 19: 289 = 17 x 17
- 20: 299 = 13 x 23
- 21: 319 = 11 x 29
- 22: 323 = 17 x 19
- 23: 341 = 11 x 31
- 24: 361 = 19 x 19
- 25: 377 = 13 x 29
- 26: 391 = 17 x 23
- 27: 403 = 13 x 31
- 28: 407 = 11 x 37
- 29: 437 = 19 x 23
- 30: 451 = 11 x 41
- 31: 473 = 11 x 43
- 32: 481 = 13 x 37
- 33: 493 = 17 x 29
- 34: 517 = 11 x 47
- 35: 527 = 17 x 31
- 36: 529 = 23 x 23
- 37: 533 = 13 x 41
- 38: 551 = 19 x 29
- 39: 559 = 13 x 43
- 40: 583 = 11 x 53
- 41: 589 = 19 x 31
- 42: 611 = 13 x 47
- 43: 629 = 17 x 37
- 44: 649 = 11 x 59
- 45: 667 = 23 x 29
- 46: 671 = 11 x 61
- 47: 689 = 13 x 53
- 48: 697 = 17 x 41
- 49: 703 = 19 x 37
- 50: 713 = 23 x 31
-```
+| Index | Value | Factors |
+| -----------: | -------------------: | ------------------------------------------------------------ |
+| 1 | 72 | 2<sup>3</sup>.3<sup>2</sup> |
+| 2 | 108 | 2<sup>2</sup>.3<sup>3</sup> |
+| 3 | 200 | 2<sup>3</sup>.5<sup>2</sup> |
+| 4 | 288 | 2<sup>5</sup>.3<sup>2</sup> |
+| 5 | 392 | 2<sup>3</sup>.7<sup>2</sup> |
+| 6 | 432 | 2<sup>4</sup>.3<sup>3</sup> |
+| 7 | 500 | 2<sup>2</sup>.5<sup>3</sup> |
+| 8 | 648 | 2<sup>3</sup>.3<sup>4</sup> |
+| 9 | 675 | 3<sup>3</sup>.5<sup>2</sup> |
+| 10 | 800 | 2<sup>5</sup>.5<sup>2</sup> |
+| 11 | 864 | 2<sup>5</sup>.3<sup>3</sup> |
+| 12 | 968 | 2<sup>3</sup>.11<sup>2</sup> |
+| 13 | 972 | 2<sup>2</sup>.3<sup>5</sup> |
+| 14 | 1,125 | 3<sup>2</sup>.5<sup>3</sup> |
+| 15 | 1,152 | 2<sup>7</sup>.3<sup>2</sup> |
+| 16 | 1,323 | 3<sup>3</sup>.7<sup>2</sup> |
+| 17 | 1,352 | 2<sup>3</sup>.13<sup>2</sup> |
+| 18 | 1,372 | 2<sup>2</sup>.7<sup>3</sup> |
+| 19 | 1,568 | 2<sup>5</sup>.7<sup>2</sup> |
+| 20 | 1,800 | 2<sup>3</sup>.3<sup>2</sup>.5<sup>2</sup> |
+| 21 | 1,944 | 2<sup>3</sup>.3<sup>5</sup> |
+| 22 | 2,000 | 2<sup>4</sup>.5<sup>3</sup> |
+| 23 | 2,312 | 2<sup>3</sup>.17<sup>2</sup> |
+| 24 | 2,592 | 2<sup>5</sup>.3<sup>4</sup> |
+| 25 | 2,700 | 2<sup>2</sup>.3<sup>3</sup>.5<sup>2</sup> |
+| 26 | 2,888 | 2<sup>3</sup>.19<sup>2</sup> |
+| 27 | 3,087 | 3<sup>2</sup>.7<sup>3</sup> |
+| 28 | 3,200 | 2<sup>7</sup>.5<sup>2</sup> |
+| 29 | 3,267 | 3<sup>3</sup>.11<sup>2</sup> |
+| 30 | 3,456 | 2<sup>7</sup>.3<sup>3</sup> |
+| 31 | 3,528 | 2<sup>3</sup>.3<sup>2</sup>.7<sup>2</sup> |
+| 32 | 3,872 | 2<sup>5</sup>.11<sup>2</sup> |
+| 33 | 3,888 | 2<sup>4</sup>.3<sup>5</sup> |
+| 34 | 4,000 | 2<sup>5</sup>.5<sup>3</sup> |
+| 35 | 4,232 | 2<sup>3</sup>.23<sup>2</sup> |
+| 36 | 4,500 | 2<sup>2</sup>.3<sup>2</sup>.5<sup>3</sup> |
+| 37 | 4,563 | 3<sup>3</sup>.13<sup>2</sup> |
+| 38 | 4,608 | 2<sup>9</sup>.3<sup>2</sup> |
+| 39 | 5,000 | 2<sup>3</sup>.5<sup>4</sup> |
+| 40 | 5,292 | 2<sup>2</sup>.3<sup>3</sup>.7<sup>2</sup> |
+| 41 | 5,324 | 2<sup>2</sup>.11<sup>3</sup> |
+| 42 | 5,400 | 2<sup>3</sup>.3<sup>3</sup>.5<sup>2</sup> |
+| 43 | 5,408 | 2<sup>5</sup>.13<sup>2</sup> |
+| 44 | 5,488 | 2<sup>4</sup>.7<sup>3</sup> |
+| 45 | 6,075 | 3<sup>5</sup>.5<sup>2</sup> |
+| 46 | 6,125 | 5<sup>3</sup>.7<sup>2</sup> |
+| 47 | 6,272 | 2<sup>7</sup>.7<sup>2</sup> |
+| 48 | 6,728 | 2<sup>3</sup>.29<sup>2</sup> |
+| 49 | 6,912 | 2<sup>8</sup>.3<sup>3</sup> |
+| 50 | 7,200 | 2<sup>5</sup>.3<sup>2</sup>.5<sup>2</sup> |
+
### Removing pretty print
@@ -139,58 +140,60 @@ for( my( $MAX, $c, $n, @f ) = ($ARGV[0] // 1e2, 0); $c<$MAX; ) {
```
The following are the first 50 achilles numbers.
-```
- 1: 72 = 2^3 . 3^2
- 2: 108 = 2^2 . 3^3
- 3: 200 = 2^3 . 5^2
- 4: 288 = 2^5 . 3^2
- 5: 392 = 2^3 . 7^2
- 6: 432 = 2^4 . 3^3
- 7: 500 = 2^2 . 5^3
- 8: 648 = 2^3 . 3^4
- 9: 675 = 3^3 . 5^2
- 10: 800 = 2^5 . 5^2
- 11: 864 = 2^5 . 3^3
- 12: 968 = 2^3 . 11^2
- 13: 972 = 2^2 . 3^5
- 14: 1125 = 3^2 . 5^3
- 15: 1152 = 2^7 . 3^2
- 16: 1323 = 3^3 . 7^2
- 17: 1352 = 2^3 . 13^2
- 18: 1372 = 2^2 . 7^3
- 19: 1568 = 2^5 . 7^2
- 20: 1800 = 2^3 . 3^2 . 5^2
- 21: 1944 = 2^3 . 3^5
- 22: 2000 = 2^4 . 5^3
- 23: 2312 = 2^3 . 17^2
- 24: 2592 = 2^5 . 3^4
- 25: 2700 = 2^2 . 3^3 . 5^2
- 26: 2888 = 2^3 . 19^2
- 27: 3087 = 3^2 . 7^3
- 28: 3200 = 2^7 . 5^2
- 29: 3267 = 3^3 . 11^2
- 30: 3456 = 2^7 . 3^3
- 31: 3528 = 2^3 . 3^2 . 7^2
- 32: 3872 = 2^5 . 11^2
- 33: 3888 = 2^4 . 3^5
- 34: 4000 = 2^5 . 5^3
- 35: 4232 = 2^3 . 23^2
- 36: 4500 = 2^2 . 3^2 . 5^3
- 37: 4563 = 3^3 . 13^2
- 38: 4608 = 2^9 . 3^2
- 39: 5000 = 2^3 . 5^4
- 40: 5292 = 2^2 . 3^3 . 7^2
- 41: 5324 = 2^2 . 11^3
- 42: 5400 = 2^3 . 3^3 . 5^2
- 43: 5408 = 2^5 . 13^2
- 44: 5488 = 2^4 . 7^3
- 45: 6075 = 3^5 . 5^2
- 46: 6125 = 5^3 . 7^2
- 47: 6272 = 2^7 . 7^2
- 48: 6728 = 2^3 . 29^2
- 49: 6912 = 2^8 . 3^3
- 50: 7200 = 2^5 . 3^2 . 5^2
-```
+
+| Index | Value | Factors |
+| -----------: | -------------------: | ------------------------------------------------------------ |
+| 1 | 72 | 2<sup>3</sup>.3<sup>2</sup> |
+| 2 | 108 | 2<sup>2</sup>.3<sup>3</sup> |
+| 3 | 200 | 2<sup>3</sup>.5<sup>2</sup> |
+| 4 | 288 | 2<sup>5</sup>.3<sup>2</sup> |
+| 5 | 392 | 2<sup>3</sup>.7<sup>2</sup> |
+| 6 | 432 | 2<sup>4</sup>.3<sup>3</sup> |
+| 7 | 500 | 2<sup>2</sup>.5<sup>3</sup> |
+| 8 | 648 | 2<sup>3</sup>.3<sup>4</sup> |
+| 9 | 675 | 3<sup>3</sup>.5<sup>2</sup> |
+| 10 | 800 | 2<sup>5</sup>.5<sup>2</sup> |
+| 11 | 864 | 2<sup>5</sup>.3<sup>3</sup> |
+| 12 | 968 | 2<sup>3</sup>.11<sup>2</sup> |
+| 13 | 972 | 2<sup>2</sup>.3<sup>5</sup> |
+| 14 | 1,125 | 3<sup>2</sup>.5<sup>3</sup> |
+| 15 | 1,152 | 2<sup>7</sup>.3<sup>2</sup> |
+| 16 | 1,323 | 3<sup>3</sup>.7<sup>2</sup> |
+| 17 | 1,352 | 2<sup>3</sup>.13<sup>2</sup> |
+| 18 | 1,372 | 2<sup>2</sup>.7<sup>3</sup> |
+| 19 | 1,568 | 2<sup>5</sup>.7<sup>2</sup> |
+| 20 | 1,800 | 2<sup>3</sup>.3<sup>2</sup>.5<sup>2</sup> |
+| 21 | 1,944 | 2<sup>3</sup>.3<sup>5</sup> |
+| 22 | 2,000 | 2<sup>4</sup>.5<sup>3</sup> |
+| 23 | 2,312 | 2<sup>3</sup>.17<sup>2</sup> |
+| 24 | 2,592 | 2<sup>5</sup>.3<sup>4</sup> |
+| 25 | 2,700 | 2<sup>2</sup>.3<sup>3</sup>.5<sup>2</sup> |
+| 26 | 2,888 | 2<sup>3</sup>.19<sup>2</sup> |
+| 27 | 3,087 | 3<sup>2</sup>.7<sup>3</sup> |
+| 28 | 3,200 | 2<sup>7</sup>.5<sup>2</sup> |
+| 29 | 3,267 | 3<sup>3</sup>.11<sup>2</sup> |
+| 30 | 3,456 | 2<sup>7</sup>.3<sup>3</sup> |
+| 31 | 3,528 | 2<sup>3</sup>.3<sup>2</sup>.7<sup>2</sup> |
+| 32 | 3,872 | 2<sup>5</sup>.11<sup>2</sup> |
+| 33 | 3,888 | 2<sup>4</sup>.3<sup>5</sup> |
+| 34 | 4,000 | 2<sup>5</sup>.5<sup>3</sup> |
+| 35 | 4,232 | 2<sup>3</sup>.23<sup>2</sup> |
+| 36 | 4,500 | 2<sup>2</sup>.3<sup>2</sup>.5<sup>3</sup> |
+| 37 | 4,563 | 3<sup>3</sup>.13<sup>2</sup> |
+| 38 | 4,608 | 2<sup>9</sup>.3<sup>2</sup> |
+| 39 | 5,000 | 2<sup>3</sup>.5<sup>4</sup> |
+| 40 | 5,292 | 2<sup>2</sup>.3<sup>3</sup>.7<sup>2</sup> |
+| 41 | 5,324 | 2<sup>2</sup>.11<sup>3</sup> |
+| 42 | 5,400 | 2<sup>3</sup>.3<sup>3</sup>.5<sup>2</sup> |
+| 43 | 5,408 | 2<sup>5</sup>.13<sup>2</sup> |
+| 44 | 5,488 | 2<sup>4</sup>.7<sup>3</sup> |
+| 45 | 6,075 | 3<sup>5</sup>.5<sup>2</sup> |
+| 46 | 6,125 | 5<sup>3</sup>.7<sup>2</sup> |
+| 47 | 6,272 | 2<sup>7</sup>.7<sup>2</sup> |
+| 48 | 6,728 | 2<sup>3</sup>.29<sup>2</sup> |
+| 49 | 6,912 | 2<sup>8</sup>.3<sup>3</sup> |
+| 50 | 7,200 | 2<sup>5</sup>.3<sup>2</sup>.5<sup>2</sup> |
+
Some examples for larger values of `n` are:
@@ -249,8 +252,24 @@ And these are the first numbers with `n` digits...
| 34,562 | 1,000,042,200 | 2<sup>3</sup>.3<sup>6</sup>.5<sup>2</sup>.19<sup>3</sup> |
| 111,892 | 10,000,373,888 | 2<sup>7</sup>.8839<sup>2</sup> |
-### Removing pretty print
+### Github formatting script....
+To convert from the human readable text file generated by the script to github markup I wrote this script:
+
+```perl
+head();
+while( <> ) {
+ head(), next unless /\S/;
+ my ($c,$n,$p) = m{(\d+):\s+(\d+)\s+=\s+(.*)$};
+ printf "| %12s | %20s | %-60s |\n", th($c), th($n),
+ join q(.), map { sprintf '%d<sup>%d</sup>', split /\^/ } split / \. /, $p
+}
+
+sub head { print "\n| Index | Value | Factors |
+| -----------: | -------------------: | ------------------------------------------------------------ |\n" }
+sub th { scalar reverse ( (reverse $_[0]) =~ s/(\d\d\d)(?=\d)(?!\d*\.)/$1,/gr ) }
+```
+### Removing pretty print
If we remove the pretty print this reduces to: