aboutsummaryrefslogtreecommitdiff
path: root/challenge-079
diff options
context:
space:
mode:
authorMarkus "Holli" Holzer <holli.holzer@gmail.com>2020-09-22 10:30:09 +0200
committerMarkus "Holli" Holzer <holli.holzer@gmail.com>2020-09-22 10:30:09 +0200
commit93f93db1b10b67f24fed13405eb7c69c4f98011a (patch)
tree343e3c3e5e8ff0744ec06177d81dddc8c6e64cd4 /challenge-079
parent5e7e64e96d5abaca4586348e441268923e40f574 (diff)
downloadperlweeklychallenge-club-93f93db1b10b67f24fed13405eb7c69c4f98011a.tar.gz
perlweeklychallenge-club-93f93db1b10b67f24fed13405eb7c69c4f98011a.tar.bz2
perlweeklychallenge-club-93f93db1b10b67f24fed13405eb7c69c4f98011a.zip
faster! faster!!
Diffstat (limited to 'challenge-079')
-rw-r--r--challenge-079/markus-holzer/raku/bench.raku16
-rw-r--r--challenge-079/markus-holzer/raku/ch-1.raku10
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