diff options
| author | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-09-22 10:30:09 +0200 |
|---|---|---|
| committer | Markus "Holli" Holzer <holli.holzer@gmail.com> | 2020-09-22 10:30:09 +0200 |
| commit | 93f93db1b10b67f24fed13405eb7c69c4f98011a (patch) | |
| tree | 343e3c3e5e8ff0744ec06177d81dddc8c6e64cd4 | |
| parent | 5e7e64e96d5abaca4586348e441268923e40f574 (diff) | |
| download | perlweeklychallenge-club-93f93db1b10b67f24fed13405eb7c69c4f98011a.tar.gz perlweeklychallenge-club-93f93db1b10b67f24fed13405eb7c69c4f98011a.tar.bz2 perlweeklychallenge-club-93f93db1b10b67f24fed13405eb7c69c4f98011a.zip | |
faster! faster!!
| -rw-r--r-- | challenge-079/markus-holzer/raku/bench.raku | 16 | ||||
| -rw-r--r-- | challenge-079/markus-holzer/raku/ch-1.raku | 10 |
2 files changed, 13 insertions, 13 deletions
diff --git a/challenge-079/markus-holzer/raku/bench.raku b/challenge-079/markus-holzer/raku/bench.raku index a37c8befaa..b137f7e90d 100644 --- a/challenge-079/markus-holzer/raku/bench.raku +++ b/challenge-079/markus-holzer/raku/bench.raku @@ -8,8 +8,8 @@ unit sub MAIN(Int $N = 42); #say (1..$N).map( &f ).sum; #say (1..$N).map( &k ).sum; #say ($N...1).map( &l ).sum; -#say a($N); -#say b($N); +say a($N); +say b($N); #exit; sub i { +$^n.base(2).indices(1) } @@ -63,13 +63,13 @@ sub b(Int $N) while $n { my $a = $t +> 1; - my $s = $N +& ( $t - 1); + my $s = $N +& ( $t - 1 ); my $d = ( $N div $t ); - $r += $d * $a; - $r += $s - $a + 1 if $s > $a - 1; - $t = $t +< 1; - $n = $n +> 1; + $r += $d * $a; + $r += 1 + $s - $a if $s > $a - 1; + $t +<= 1; + $n +>= 1; } return $r @@ -83,4 +83,4 @@ Bench.new.timethese( 1000, { # div2-recursive => { ($N...1).map( &f ).sum }, # kernighan => { ($N...1).map( &k ).sum }, # lookup-recursive => { ($N...1).map( &l ).sum } -})git
\ No newline at end of file +})
\ No newline at end of file diff --git a/challenge-079/markus-holzer/raku/ch-1.raku b/challenge-079/markus-holzer/raku/ch-1.raku index 9ccf316272..bf62b2bf06 100644 --- a/challenge-079/markus-holzer/raku/ch-1.raku +++ b/challenge-079/markus-holzer/raku/ch-1.raku @@ -6,13 +6,13 @@ my Int $n = $N; while $n { my $a = $t +> 1; - my $s = $N +& ( $t - 1); + my $s = $N +& ( $t - 1 ); my $d = ( $N div $t ); - $r += $d * $a; - $r += $s - $a + 1 if $s > $a - 1; - $t = $t +< 1; - $n = $n +> 1; + $r += $d * $a; + $r += 1 + $s - $a if $s > $a - 1; + $t +<= 1; + $n +>= 1; } say $r % 1000000007;
\ No newline at end of file |
