182 RSA encryption.sf 440 B

12345678910111213141516171819202122232425262728
  1. #!/usr/bin/ruby
  2. # Daniel "Trizen" Șuteu
  3. # Date: 14 January 2017
  4. # License: GPLv3
  5. # https://github.com/trizen
  6. # https://projecteuler.net/problem=182
  7. # Runtime: 18.471s (previously 45.963s)
  8. var p = 1009
  9. var q = 3643
  10. var phi = (p - 1)*(q - 1)
  11. var sum = 0
  12. for e in (2 .. phi-1) {
  13. if (e.is_coprime(phi)) {
  14. if ((gcd(e - 1, p - 1) == 2) &&
  15. (gcd(e - 1, q - 1) == 2)) {
  16. sum += e
  17. }
  18. }
  19. }
  20. say sum