fork download
  1. import java.util.ArrayList;
  2.  
  3. class Ideone
  4. {
  5. static int[] prime = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 };
  6. static long limit = 10_0000_0000;
  7. static int maxYakusu;
  8. static ArrayList<Long> list = new ArrayList<>();
  9.  
  10. public static void main(String[] args)
  11. {
  12. search(1, 1, 0, Integer.MAX_VALUE);
  13. System.out.printf("数値: %s, 約数の数: %d%n", list, maxYakusu);
  14. }
  15.  
  16. static void search(long number, int yakusu, int n, int l)
  17. {
  18. int newYakusu = yakusu;
  19. for (int i = 1; i <= l && number * prime[n] <= limit; i++)
  20. {
  21. newYakusu += yakusu;
  22. number *= prime[n];
  23. if (newYakusu >= maxYakusu)
  24. {
  25. if (newYakusu > maxYakusu)
  26. {
  27. list.clear();
  28. maxYakusu = newYakusu;
  29. }
  30. list.add(number);
  31. }
  32. search(number, newYakusu, n + 1, i);
  33. }
  34. }
  35. }
Success #stdin #stdout 0.04s 711168KB
stdin
Standard input is empty
stdout
数値: [931170240, 735134400], 約数の数: 1344