$| = 1; sub sumOfDigits { my $n = shift; my $s = 0; while ($n) { my $d = $n % 10; $s += $d; $n = ($n - $d)/10; } return $s; } sub a { my $n = shift; my $d = sumOfDigits($n); for (my $k=0;; $k++) { if (index($k, $d)>=0 && index($n, sumOfDigits($k))>=0) { return $k; } } } foreach my $n (0..100) { my $v = a($n); print "$n $v\n"; }