y.pl 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #!/usr/bin/perl
  2. use 5.014;
  3. use strict;
  4. use warnings;
  5. use ntheory qw(:all);
  6. use Math::AnyNum qw(iroot);
  7. sub isok{
  8. my ($n, $k) = @_;
  9. # $k-$n >= 0 or return 0;
  10. #return 0 if is_square($k);
  11. is_power($n+$k,3) || return 0;
  12. is_power($k-$n,3) || return 0;
  13. #foreach my $j($k-$n+1 .. $n+$k-1) {
  14. # is_square($j) && return 0;
  15. #}
  16. return 1;
  17. }
  18. sub is_my_prime {
  19. my ($n) = @_;
  20. for my $k(1..$n*$n) {
  21. if (isok(2*$n, $k)) {
  22. return 0;
  23. }
  24. }
  25. return 1;
  26. }
  27. #~ foreach my $n(1..10000) {
  28. #~ if (is_my_prime($n)) {
  29. #~ if ($n > 1 and not is_prime($n)) {
  30. #~ die "error for n=$n";
  31. #~ }
  32. #~ say $n;
  33. #~ }
  34. #~ #if(isok(2*$n, $n*$n+1)) {
  35. #~ my $k = $n+1;
  36. #~ if (isok($n, $k)) {
  37. #~ say $n;
  38. #~ }
  39. #~ #say $n;
  40. #~ #}
  41. #~ }
  42. #~ __END__
  43. $|=1;
  44. my $max = 0;
  45. foreach my $n(1..1000) {
  46. #$n = nth_prime($n);
  47. # $n = $n**3;
  48. my $k = 1;
  49. while (!isok($n, $k)) {
  50. ++$k;
  51. last if ($k >= 1e4);
  52. }
  53. isok($n, $k) || next;
  54. #if (not ($k >= 2*$n)) {
  55. # die "error!! n=$n";
  56. #}
  57. #say "$n -> $k -> ", 2*$n + $k, ' -- ', $k - 2*$n;
  58. #print "$k, ";
  59. #~ say "$n -- $k -> [", ($n+$k)**(1/3), ", ", iroot(($k-$n), 3), "]";
  60. #~ say iroot(($k-$n), 3);
  61. #say $k; #(($n+$k)**(1/3));
  62. if ($k > $max) {
  63. $max = $k;
  64. say $n, ' -> ', join(", ", factor($n+$k));
  65. }
  66. #if ($k != 2*$n) {
  67. # die "Conjecture failed for n=$n";
  68. #}
  69. # if (is_square($n) and is_prime(sqrtint($n))) {
  70. # say "$n -> $k -> ", join(', ', factor($k));
  71. # }
  72. #if ($k > $max) {
  73. # $max = $k;
  74. # say "$n -> $max -> ", join(", ", factor($max-1));
  75. # #say $n , ' -> ', $max, ' -> ', join(', ', factor($max-1));
  76. #}
  77. #say "$n -> $k";
  78. #say $k;
  79. #say $k;
  80. #say "a($n) = $k";
  81. #print "$k, ";
  82. #say $k;
  83. }