182 RSA encryption -- v2.pl 526 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/perl
  2. # Daniel "Trizen" Șuteu
  3. # Date: 13 January 2017
  4. # License: GPLv3
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=182
  7. # Runtime: 1.200s
  8. use 5.010;
  9. use strict;
  10. use warnings;
  11. use ntheory qw(gcd);
  12. my $p = 1009;
  13. my $q = 3643;
  14. my $n = ($p * $q);
  15. my $phi = ($p - 1) * ($q - 1);
  16. my $sum = 0;
  17. foreach my $e (2 .. $phi - 1) {
  18. if (gcd($e, $phi) == 1) {
  19. if ( gcd($e - 1, $p - 1) == 2
  20. and gcd($e - 1, $q - 1) == 2) {
  21. $sum += $e;
  22. }
  23. }
  24. }
  25. say $sum;