sub t{($n,@c)=@_;my@w;foreach$c(@c){for$u(1..9) {next if$c=~/$u/;$y=$c.$u;if($y%$n==0){push(@w,$y)}}}return@w} my@c=(1..9);for$i(2..9){@c=&t($i,@c)}print"@c\n" #### use warnings; use strict; sub iter { my ($n, @old_cand) = @_; my @new_cand; foreach my $cand (@old_cand) { for my $num (1..9) { next if $cand =~ /$num/; my $new_c=$cand.$num; if ($new_c % $n == 0) {push ( @new_cand, $new_c)} } } return @new_cand; } my @c=(1..9); for my $i (2..9) { @c=&iter($i, @c); } print "@c\n";