from_product.pl 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/perl
  2. use 5.014;
  3. use Math::GMPz;
  4. use ntheory qw(forsemiprimes forprimes factor forsquarefree random_prime divisors gcd next_prime);
  5. use Math::Prime::Util::GMP qw(mulint is_pseudoprime vecprod divint sqrtint vecprod);
  6. #my $k = vecprod(3, 5, 17, 23, 29, 43, 53, 89, 113, 127, 157, 257);
  7. #my $k = vecprod(3, 5, 17, 23, 29, 43, 53, 89, 113, 127, 157, 269);
  8. #my $k = vecprod(3, 5, 17, 23, 29, 43, 53, 89, 113, 127, 157, 257, 2689);
  9. #my $k = vecprod(3, 5, 17, 23, 29, 43, 53, 89, 113, 127, 157, 257, 2689, 13553);
  10. #my $k = vecprod(3, 5, 17, 23, 29, 43, 53, 89, 113, 257, 2731, 24007);
  11. #my $k = vecprod(3, 5, 17, 23, 29, 43, 53, 89, 113, 127, 157, 257, 2689, 13553);
  12. #my $k = vecprod(3, 5, 17, 23, 29, 43, 53, 89, 113, 127, 157, 257, 2689, 13553, 192193, 1921921, 2434433);
  13. my $k = vecprod(3, 5, 17, 23, 29, 43, 53, 89, 113, 127, 157, 257, 353, 397, 449, 617, 1093, 1499);
  14. forsquarefree {
  15. if ($_ & 1) {
  16. if (is_pseudoprime(mulint($k, $_), 2)) {
  17. say mulint($k, $_);
  18. }
  19. }
  20. } 1e8;
  21. __END__
  22. #my $k = "44914889889994250085";
  23. #my $k = "127237648413581445";
  24. my $k = "77728835801292945";
  25. #my $k = "20909056830547802205";
  26. my $from = (factor($k))[-1];
  27. my $limit = 25000;
  28. my @factors;
  29. for(my $p1 = next_prime($from); $p1 <= $limit; $p1 = next_prime($p1)) {
  30. for(my $p2 = next_prime(int($p1*10)); $p2 <= $limit; $p2 = next_prime($p2)) {
  31. for(my $p3 = next_prime(int($p2*7)); $p3 <= $limit; $p3 = next_prime($p3)) {
  32. my $factor = $p1*$p2*$p3;
  33. if (is_pseudoprime(mulint($k, $factor), 2)) {
  34. say mulint($k, $factor);
  35. }
  36. }
  37. }
  38. }
  39. __END__
  40. say $count;
  41. my $from = 1e8+1e7+1e7+1e7+1e7;
  42. forsquarefree {
  43. if ($_ % 2 == 1) {
  44. if (is_pseudoprime(mulint($k, $_), 2)) {
  45. say mulint($k, $_);
  46. }
  47. }
  48. } $from,$from+1e7;