100 Arranged probability.pl 561 B

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/perl
  2. # Daniel "Trizen" Șuteu
  3. # Date: 17 February 2017
  4. # License: GPLv3
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=100
  7. # Runtime: 0.004s
  8. use strict;
  9. use warnings;
  10. for (my $m = 1 ; ; ++$m) {
  11. my $n = 1/4 * (
  12. -(1 + sqrt(2)) * (3 - 2*sqrt(2))**$m
  13. -(1 - sqrt(2)) * (3 + 2*sqrt(2))**$m - 2
  14. );
  15. if ($n > 10**12) {
  16. my $b = 1/8 * (
  17. (sqrt(2) + 2) * (3 - 2*sqrt(2))**$m
  18. - (sqrt(2) - 2) * (3 + 2*sqrt(2))**$m + 4
  19. );
  20. printf("%.0f\n", $b);
  21. last;
  22. }
  23. }