Thread Ganzzahliges Vielfaches von 2017 in der Form /^[01]+/
(14 answers)
Opened by Jigsaw at 2017-06-25 01:23
Habs mal umgebaut. Dauert ca. 1 sek.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 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; } edit: jetzt geht's in "kaum mehr messbar"-Zeit Last edited: 2017-06-26 11:13:45 +0200 (CEST) 1 + 1 = 10
|