diff options
| author | drbaggy <js5@sanger.ac.uk> | 2022-06-19 17:46:07 +0100 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2022-06-19 17:46:07 +0100 |
| commit | 13b3cd9b68ddd39a02399d1b077c3177bea73dbf (patch) | |
| tree | 0b3aee01fea1b43b8187520aa0b6b9a76a87722f | |
| parent | ca89930ad7c9d7b098c5aa5ab630409bd747b5fd (diff) | |
| parent | ef2148be6266c1d7713edc3fb059f6190eb5d6f0 (diff) | |
| download | perlweeklychallenge-club-13b3cd9b68ddd39a02399d1b077c3177bea73dbf.tar.gz perlweeklychallenge-club-13b3cd9b68ddd39a02399d1b077c3177bea73dbf.tar.bz2 perlweeklychallenge-club-13b3cd9b68ddd39a02399d1b077c3177bea73dbf.zip | |
Merge branch 'master' of github.com:drbaggy/perlweeklychallenge-club
| -rw-r--r-- | challenge-169/james-smith/README.md | 285 |
1 files changed, 182 insertions, 103 deletions
diff --git a/challenge-169/james-smith/README.md b/challenge-169/james-smith/README.md index 4ddc4fc7f2..94df976f68 100644 --- a/challenge-169/james-smith/README.md +++ b/challenge-169/james-smith/README.md @@ -44,58 +44,60 @@ 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 @@ -138,57 +140,134 @@ 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: + +| Index | Value | Factors | +| -----------: | -------------------: | ------------------------------------------------------------ | +| 100 | 21,600 | 2<sup>5</sup>.3<sup>3</sup>.5<sup>2</sup> | +| 200 | 66,248 | 2<sup>3</sup>.7<sup>2</sup>.13<sup>2</sup> | +| 300 | 136,107 | 3<sup>3</sup>.71<sup>2</sup> | +| 400 | 225,000 | 2<sup>3</sup>.3<sup>2</sup>.5<sup>5</sup> | +| 500 | 333,396 | 2<sup>2</sup>.3<sup>5</sup>.7<sup>3</sup> | +| 600 | 464,648 | 2<sup>3</sup>.241<sup>2</sup> | +| 700 | 617,400 | 2<sup>3</sup>.3<sup>2</sup>.5<sup>2</sup>.7<sup>3</sup> | +| 800 | 784,000 | 2<sup>7</sup>.5<sup>3</sup>.7<sup>2</sup> | +| 900 | 969,624 | 2<sup>3</sup>.3<sup>3</sup>.67<sup>2</sup> | +| 1,000 | 1,179,648 | 2<sup>17</sup>.3<sup>2</sup> | +| 2,000 | 4,255,443 | 3<sup>3</sup>.397<sup>2</sup> | +| 3,000 | 9,082,800 | 2<sup>4</sup>.3<sup>3</sup>.5<sup>2</sup>.29<sup>2</sup> | +| 4,000 | 15,635,232 | 2<sup>5</sup>.3<sup>2</sup>.233<sup>2</sup> | +| 5,000 | 23,876,179 | 19<sup>3</sup>.59<sup>2</sup> | +| 6,000 | 33,818,428 | 2<sup>2</sup>.7<sup>3</sup>.157<sup>2</sup> | +| 7,000 | 45,489,708 | 2<sup>2</sup>.3<sup>3</sup>.11<sup>2</sup>.59<sup>2</sup> | +| 8,000 | 58,752,800 | 2<sup>5</sup>.5<sup>2</sup>.271<sup>2</sup> | +| 9,000 | 73,641,248 | 2<sup>5</sup>.37<sup>2</sup>.41<sup>2</sup> | +| 10,000 | 90,209,312 | 2<sup>5</sup>.23<sup>2</sup>.73<sup>2</sup> | +| 20,000 | 344,478,752 | 2<sup>5</sup>.17<sup>2</sup>.193<sup>2</sup> | +| 30,000 | 758,595,456 | 2<sup>7</sup>.3<sup>5</sup>.29<sup>3</sup> | +| 40,000 | 1,330,259,301 | 3<sup>3</sup>.7<sup>3</sup>.379<sup>2</sup> | +| 50,000 | 2,057,748,300 | 2<sup>2</sup>.3<sup>7</sup>.5<sup>2</sup>.97<sup>2</sup> | +| 60,000 | 2,941,077,600 | 2<sup>5</sup>.3<sup>7</sup>.5<sup>2</sup>.41<sup>2</sup> | +| 70,000 | 3,978,593,667 | 3<sup>3</sup>.61<sup>2</sup>.199<sup>2</sup> | +| 80,000 | 5,171,352,984 | 2<sup>3</sup>.3<sup>5</sup>.7<sup>2</sup>.233<sup>2</sup> | +| 90,000 | 6,518,604,456 | 2<sup>3</sup>.3<sup>2</sup>.7<sup>2</sup>.13<sup>3</sup>.29<sup>2</sup> | +| 100,000 | 8,017,975,944 | 2<sup>3</sup>.3<sup>3</sup>.11<sup>3</sup>.167<sup>2</sup> | +| 125,000 | 12,437,566,904 | 2<sup>3</sup>.7<sup>3</sup>.2129<sup>2</sup> | +| 150,000 | 17,810,638,848 | 2<sup>11</sup>.3<sup>2</sup>.983<sup>2</sup> | +| 175,000 | 24,140,196,992 | 2<sup>7</sup>.31<sup>2</sup>.443<sup>2</sup> | +| 200,000 | 31,413,171,744 | 2<sup>5</sup>.3<sup>2</sup>.17<sup>3</sup>.149<sup>2</sup> | +| 225,000 | 39,636,156,125 | 5<sup>3</sup>.17807<sup>2</sup> | +| 250,000 | 48,804,377,888 | 2<sup>5</sup>.7<sup>4</sup>.797<sup>2</sup> | +| 275,000 | 58,919,206,088 | 2<sup>3</sup>.85819<sup>2</sup> | +| 300,000 | 69,976,609,587 | 3<sup>3</sup>.50909<sup>2</sup> | +| 325,000 | 81,981,196,443 | 3<sup>3</sup>.55103<sup>2</sup> | + +And these are the first numbers with `n` digits... + +| Index | Value | Factors | +| -----------: | -------------------: | ------------------------------------------------------------ | +| 1 | 72 | 2<sup>3</sup>.3<sup>2</sup> | +| 2 | 108 | 2<sup>2</sup>.3<sup>3</sup> | +| 14 | 1,125 | 3<sup>2</sup>.5<sup>3</sup> | +| 61 | 10,125 | 3<sup>4</sup>.5<sup>3</sup> | +| 253 | 100,352 | 2<sup>11</sup>.7<sup>2</sup> | +| 917 | 1,000,188 | 2<sup>2</sup>.3<sup>6</sup>.7<sup>3</sup> | +| 3,159 | 10,011,125 | 5<sup>3</sup>.283<sup>2</sup> | +| 10,554 | 100,018,800 | 2<sup>4</sup>.3<sup>6</sup>.5<sup>2</sup>.7<sup>3</sup> | +| 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> | + +### 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 |
