this string of hex-digits reduces to "42"
A few of which are:
7+c+9+6+9+5+c+b+2+3+a+7+1+d+8+5+1+6+8+8+c+c+0+d+7-f*8-b+1*0-7*2
7-c-9-6-9-5-c-b-2-3-a-7-1-d-8-5-1-6-8-8-c-c-0+d*7+f*8-b*1+0-7+2
7*c*9*6*9*5*c*b*2*3*a*7*1*d*8*5*1*6*8*8*c*c*0*d-7+f+8+b+1-0+7*2
7*c*9*6*9*5*c*b*2*3*a*7*1*d*8*5*1*6*8*8/c/c*0-d+7+f+8+b-1*0+7*2
#!/usr/local/bin/perl
use 5.010;
use strict;
use warnings FATAL => 'all';
my $hex = '7c9695cb23a71d851688cc0d7f8b1072';
my @num = map {hex} split '', $hex;
forty_two(42 => @num);
sub forty_two {
my ($target, $expr, $first, @rest) = @_;
state $count_hit = 0;
state $count_total = 0;
unless (defined $first) {
$count_total++;
if (eval $expr == $target) {
$count_hit++;
$expr =~ s/(\d+)/sprintf "%x", $1/eg;
say "$count_hit/$count_total: $expr == 42";
}
return;
}
forty_two($target, "$expr+$first", @rest);
forty_two($target, "$expr-$first", @rest);
forty_two($target, "$expr*$first", @rest);
if ($first) {
my ($last_term) = $expr =~ m{(\d+(?:[*/]\d+)*)$};
forty_two($target, "$expr/$first", @rest)
if eval "$last_term % $first == 0";
}
}
Please don't wait for it to finish running ;)
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Outside of code tags, you may need to use entities for some characters:
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
|
|