diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-05-04 20:13:40 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-05-04 20:13:40 +0100 |
| commit | be35481acbb84e90b0bd65880334806b28c702c3 (patch) | |
| tree | 2d30e97281eb4b5011c892491addbc57654cb071 | |
| parent | b1a1a7a8a4d30edaf3f1b387327b839605e1c5e6 (diff) | |
| download | perlweeklychallenge-club-be35481acbb84e90b0bd65880334806b28c702c3.tar.gz perlweeklychallenge-club-be35481acbb84e90b0bd65880334806b28c702c3.tar.bz2 perlweeklychallenge-club-be35481acbb84e90b0bd65880334806b28c702c3.zip | |
More solutions by Laurent Rosenfeld.
| -rw-r--r-- | challenge-006/laurent-rosenfeld/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-006/laurent-rosenfeld/perl5/ch-1e.pl | 33 | ||||
| -rw-r--r-- | challenge-006/laurent-rosenfeld/perl5/ch-1f.sh | 1 | ||||
| -rw-r--r-- | challenge-006/laurent-rosenfeld/perl5/ch-1g.pl | 6 | ||||
| -rw-r--r-- | challenge-006/laurent-rosenfeld/perl5/ch-1h.pl | 5 | ||||
| -rw-r--r-- | challenge-006/laurent-rosenfeld/perl6/ch-1b.p6 | 6 |
6 files changed, 52 insertions, 0 deletions
diff --git a/challenge-006/laurent-rosenfeld/blog.txt b/challenge-006/laurent-rosenfeld/blog.txt index 54d90dc3a7..19fd567afc 100644 --- a/challenge-006/laurent-rosenfeld/blog.txt +++ b/challenge-006/laurent-rosenfeld/blog.txt @@ -1 +1,2 @@ http://blogs.perl.org/users/laurent_r/2019/05/perl-weekly-challenge-6-compact-number-ranges.html +http://blogs.perl.org/users/laurent_r/2019/05/perl-weekly-challenge-6-ramanujans-constant.html diff --git a/challenge-006/laurent-rosenfeld/perl5/ch-1e.pl b/challenge-006/laurent-rosenfeld/perl5/ch-1e.pl new file mode 100644 index 0000000000..aeb0ae555e --- /dev/null +++ b/challenge-006/laurent-rosenfeld/perl5/ch-1e.pl @@ -0,0 +1,33 @@ +e strict; +use warnings; +use feature 'say'; +use constant largest_num => 100_000; + +sub find_primes { + my $num = 5; + my @primes = (2, 3, 5); + while (1) { + $num += 2; # check only odd numbers + last if $num > largest_num; + my $limit = int $num ** 0.5; + my $num_is_prime = 1; + for my $prime (@primes) { + last if $prime > $limit; + if ($num % $prime == 0) { + $num_is_prime = 0; + last; + } + } + push @primes, $num if $num_is_prime; + } + return @primes; +} +my @prime_numbers = find_primes; +my @primes_for_rama = grep { $_ % 4 == 3 } @prime_numbers; + +my $product = 1; +for my $p (@primes_for_rama) { + my $term = (1 - (1 / $p**2)) **(-1/2); + $product *= $term; +} +say $product / 2**(1/2); diff --git a/challenge-006/laurent-rosenfeld/perl5/ch-1f.sh b/challenge-006/laurent-rosenfeld/perl5/ch-1f.sh new file mode 100644 index 0000000000..c67b2b2a1a --- /dev/null +++ b/challenge-006/laurent-rosenfeld/perl5/ch-1f.sh @@ -0,0 +1 @@ +perl -E '$pi = 3.14159265358979323846; say exp ($pi * sqrt 163);' diff --git a/challenge-006/laurent-rosenfeld/perl5/ch-1g.pl b/challenge-006/laurent-rosenfeld/perl5/ch-1g.pl new file mode 100644 index 0000000000..abcf2e093d --- /dev/null +++ b/challenge-006/laurent-rosenfeld/perl5/ch-1g.pl @@ -0,0 +1,6 @@ +use strict; +use warnings; +use Math::BigFloat "bpi"; +my $sqrt_163 = Math::BigFloat->new(163)->bsqrt; +my $big_e = Math::BigFloat->new(1)->bexp; +printf "%.33s\n", $big_e ** (bpi() * $sqrt_163); diff --git a/challenge-006/laurent-rosenfeld/perl5/ch-1h.pl b/challenge-006/laurent-rosenfeld/perl5/ch-1h.pl new file mode 100644 index 0000000000..dab43526ca --- /dev/null +++ b/challenge-006/laurent-rosenfeld/perl5/ch-1h.pl @@ -0,0 +1,5 @@ +use strict; +use warnings; +use feature "say"; +use Math::BigFloat "bpi"; +say Math::BigFloat->new(163)->bsqrt->bmul(bpi)->bexp(32); diff --git a/challenge-006/laurent-rosenfeld/perl6/ch-1b.p6 b/challenge-006/laurent-rosenfeld/perl6/ch-1b.p6 new file mode 100644 index 0000000000..55a25bb7d8 --- /dev/null +++ b/challenge-006/laurent-rosenfeld/perl6/ch-1b.p6 @@ -0,0 +1,6 @@ +use v6; + +my @primes = grep { .is-prime }, map { 4 * $_ + 3}, 0..1_000_000; +my @terms = map { 1 / (1 - (1/($_ * $_)) ) }, @primes; +my $product = ([*] @terms) /2; +say $product ** (1/2); |
