Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Puzzle: What is the largest integer yadda yadda yadda

by Roy Johnson (Monsignor)
on Oct 27, 2005 at 15:11 UTC ( [id://503371]=note: print w/replies, xml ) Need Help??


in reply to Puzzle: What is the largest integer whose digits are all different (and do not include 0) that is divisible by each of its individual digits?

This is reasonably fast. It pre-generates the whole list of candidates, so it's surely not the best. The optimization of making 5 and even numbers mutually exclusive makes a huge difference.
sub perms { return () unless @_; my ($car, @cdr) = @_; # All permutations that do not include car my @cdr_perm = perms(@cdr); # All permutations that include car my @car_perm = map { my $this_perm = $_; map { substr($this_perm, 0, $_) . $car . substr($this_perm, $_) } 0..length($this_perm) } (@cdr_perm); (@car_perm, @cdr_perm, $car); } my $max = 0; OUTER: for my $num (perms(reverse(1..4,6..9)), perms(9,7,5,3,1)) { next unless $num > $max; my @digits = split //, $num; $num % $_ > 0 and next OUTER for @digits; print "$num is divisible by all of @digits\n"; $max = $num; } print "Biggest found is $max\n";

Caution: Contents may have been coded under pressure.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://503371]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2024-03-28 18:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found