prog.pl 821 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/perl
  2. # a(n) is the smallest number with exactly n divisors that are n-gonal numbers.
  3. # https://oeis.org/A358539
  4. # Known terms:
  5. # 6, 36, 210, 1260, 6426, 3360, 351000, 207900, 3749460, 1153152, 15036840
  6. use 5.020;
  7. use ntheory qw(:all);
  8. use experimental qw(signatures);
  9. sub a($n) {
  10. my $count;
  11. for(my $k = 2; ; ++$k) {
  12. $count = 0;
  13. foreach my $d (divisors($k)) {
  14. if (is_polygonal($d, $n)) {
  15. ++$count;
  16. }
  17. }
  18. if ($count == $n) {
  19. return $k;
  20. }
  21. }
  22. }
  23. foreach my $n (3..100) {
  24. say "a($n) = ", a($n);
  25. }
  26. __END__
  27. a(3) = 6
  28. a(4) = 36
  29. a(5) = 210
  30. a(6) = 1260
  31. a(7) = 6426
  32. a(8) = 3360
  33. a(9) = 351000
  34. a(10) = 207900
  35. a(11) = 3749460
  36. a(12) = 1153152
  37. a(13) = 15036840
  38. a(14) = 204204000
  39. a(15) = 213825150
  40. a(16) = 11737440