my $number = 2017 * 2; while (1){ my @num_array = reverse split(//, $number); # reverse, weil ich wills nach Potenz sortiert for (my $idx = $#num_array; $idx >= 0; $idx--) { # alle Stellen durchgucken if ($num_array[$idx] > 1) { # eine > 1? $num_array[$idx + 1]++; # nächst "höhere" Stelle um eins höher for (my $idx_new = 0; $idx_new <= $idx; $idx_new++) { # der Rest drunter wird 0 $num_array[$idx_new] = 0; } $number = join("", reverse @num_array); #while ($number % 2017 > 0) { # wieder Teilbar durch 2017 suchen # $number ++; #} # edit: geht jetzt schneller if ($number % 2017 > 0) { $number += 2017 - ($number % 2017) } last; } } if ($number !~ /[^01]/) { say $number; exit; } $number += 2017; }