random_integer_factorization.pl 443 B

1234567891011121314151617181920212223242526272829303132
  1. #!/usr/bin/perl
  2. # Daniel "Trizen" Șuteu
  3. # License: GPLv3
  4. # Date: 19 May 2017
  5. # https://github.com/trizen
  6. # A very simple random integer factorization algorithm.
  7. use 5.010;
  8. use strict;
  9. use warnings;
  10. use ntheory qw(random_prime);
  11. my $n = 1355533 * 3672541;
  12. my $r = int(sqrt($n));
  13. my $x = $r;
  14. my $y = $r;
  15. while (1) {
  16. my $p = $x * $y;
  17. last if $p == $n;
  18. $x = random_prime(2, $r);
  19. $y = int($n / $x);
  20. }
  21. say "$n = $x * $y";