#! perl -slw use strict; use Algorithm::Combinatorics qw[ variations ]; my @digits = 1 .. 9; my $c = 0; for my $k ( 1 .. 9 ) { my $i = variations( \@digits, $k ); while( my $aref = $i->next ) { my $n = join '', @$aref; my $dv = 0; for my $d ( @$aref ) { my $r = $n / $d; ++$dv if int( $r ) == $r; ## <<< } ++$c if $dv == @$aref; } } print $c;