fork download
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6.  
  7. class Ideone {
  8.  
  9. public static Map<Integer, Integer> factorizar(int n){
  10. Map<Integer, Integer> lista = new HashMap<>();
  11. int p = 0;
  12. while (n % 2 == 0){
  13. p++;
  14. n /= 2;
  15. }
  16. if (p != 0)
  17. lista.put(2, p);
  18. for (int i = 3; i <= n; i += 2){
  19. p = 0;
  20. while (n % i == 0){
  21. p++;
  22. n /= i;
  23. }
  24. if (p == 0)
  25. continue;
  26. lista.put(i, p);
  27. }
  28. return lista;
  29. }
  30.  
  31. public static void bt(int[] primos, int[] exp, int restantes, int ult_primo, int producto, List<Integer> factores){
  32.  
  33. for (int j = 0; j < 2; j++)
  34. if (j == 0){
  35. for (int i = ult_primo; i < primos.length; i++)
  36. if (exp[i] != 0){
  37. int[] exp2 = Arrays.copyOf(exp, exp.length);
  38. exp2[i]--;
  39. bt(primos, exp2, restantes-1, i, producto*primos[i], factores);
  40. }
  41. }
  42. else {
  43. if (producto != 1 && (factores.size() == 0 || producto >= factores.get(factores.size()-1))){
  44. List<Integer> factores2 = new ArrayList<>();
  45. factores2.addAll(factores);
  46. factores2.add(producto);
  47. if (restantes == 0){
  48. System.out.println("SoluciĆ³n!: " + factores);
  49. return;
  50. }
  51. bt(primos, exp, restantes, 0, 1, factores2);
  52. }
  53. }
  54. }
  55.  
  56. public static void main(String[] args) {
  57. int[] primos = {2,3,5,7};
  58. int[] exp = {3,1,1,2};
  59. //System.out.println(factorizar(888666).values());
  60. bt(primos, exp, 7, 0, 1, new ArrayList<Integer>());
  61. }
  62. }
Success #stdin #stdout 0.05s 711168KB
stdin
Standard input is empty
stdout
Solución!: []
Solución!: [24]
Solución!: [40]
Solución!: [56]
Solución!: [8]
Solución!: [8, 15]
Solución!: [8, 21]
Solución!: [60]
Solución!: [12]
Solución!: [12, 14]
Solución!: [20]
Solución!: [28]
Solución!: [4]
Solución!: [4, 30]
Solución!: [4, 6]
Solución!: [4, 6, 7]
Solución!: [4, 10]
Solución!: [4, 14]
Solución!: [4, 15]
Solución!: [4, 21]
Solución!: [4, 35]
Solución!: [4, 5]
Solución!: [4, 5, 6]
Solución!: [4, 5, 6, 7]
Solución!: [4, 5, 14]
Solución!: [4, 5, 7]
Solución!: [4, 7]
Solución!: [4, 7, 10]
Solución!: [4, 7, 14]
Solución!: [4, 7, 7]
Solución!: [30]
Solución!: [42]
Solución!: [6]
Solución!: [6, 20]
Solución!: [6, 28]
Solución!: [6, 10]
Solución!: [6, 14]
Solución!: [6, 7]
Solución!: [6, 7, 10]
Solución!: [6, 7, 7]
Solución!: [70]
Solución!: [10]
Solución!: [10, 12]
Solución!: [10, 14]
Solución!: [10, 21]
Solución!: [14]
Solución!: [14, 20]
Solución!: [14, 14]
Solución!: [14, 15]
Solución!: [2]
Solución!: [2, 12]
Solución!: [2, 20]
Solución!: [2, 28]
Solución!: [2, 4]
Solución!: [2, 4, 15]
Solución!: [2, 4, 21]
Solución!: [2, 4, 5]
Solución!: [2, 4, 5, 7]
Solución!: [2, 4, 7]
Solución!: [2, 4, 7, 7]
Solución!: [2, 30]
Solución!: [2, 42]
Solución!: [2, 6]
Solución!: [2, 6, 10]
Solución!: [2, 6, 14]
Solución!: [2, 6, 7]
Solución!: [2, 6, 7, 7]
Solución!: [2, 10]
Solución!: [2, 10, 14]
Solución!: [2, 14]
Solución!: [2, 14, 14]
Solución!: [2, 2]
Solución!: [2, 2, 30]
Solución!: [2, 2, 6]
Solución!: [2, 2, 6, 7]
Solución!: [2, 2, 10]
Solución!: [2, 2, 14]
Solución!: [2, 2, 2]
Solución!: [2, 2, 2, 15]
Solución!: [2, 2, 2, 21]
Solución!: [2, 2, 2, 3]
Solución!: [2, 2, 2, 3, 5]
Solución!: [2, 2, 2, 3, 5, 7]
Solución!: [2, 2, 2, 3, 7]
Solución!: [2, 2, 2, 5]
Solución!: [2, 2, 2, 5, 7]
Solución!: [2, 2, 2, 7]
Solución!: [2, 2, 2, 7, 7]
Solución!: [2, 2, 15]
Solución!: [2, 2, 21]
Solución!: [2, 2, 3]
Solución!: [2, 2, 3, 10]
Solución!: [2, 2, 3, 14]
Solución!: [2, 2, 3, 5]
Solución!: [2, 2, 3, 5, 7]
Solución!: [2, 2, 3, 7]
Solución!: [2, 2, 3, 7, 7]
Solución!: [2, 2, 35]
Solución!: [2, 2, 5]
Solución!: [2, 2, 5, 6]
Solución!: [2, 2, 5, 6, 7]
Solución!: [2, 2, 5, 14]
Solución!: [2, 2, 5, 7]
Solución!: [2, 2, 7]
Solución!: [2, 2, 7, 10]
Solución!: [2, 2, 7, 14]
Solución!: [2, 2, 7, 7]
Solución!: [2, 15]
Solución!: [2, 21]
Solución!: [2, 3]
Solución!: [2, 3, 20]
Solución!: [2, 3, 28]
Solución!: [2, 3, 4]
Solución!: [2, 3, 4, 5]
Solución!: [2, 3, 4, 5, 7]
Solución!: [2, 3, 4, 7]
Solución!: [2, 3, 10]
Solución!: [2, 3, 14]
Solución!: [2, 3, 5]
Solución!: [2, 3, 5, 14]
Solución!: [2, 3, 5, 7]
Solución!: [2, 3, 7]
Solución!: [2, 3, 7, 10]
Solución!: [2, 3, 7, 7]
Solución!: [2, 35]
Solución!: [2, 5]
Solución!: [2, 5, 12]
Solución!: [2, 5, 6]
Solución!: [2, 5, 6, 7]
Solución!: [2, 5, 14]
Solución!: [2, 5, 21]
Solución!: [2, 5, 7]
Solución!: [2, 5, 7, 7]
Solución!: [2, 49]
Solución!: [2, 7]
Solución!: [2, 7, 12]
Solución!: [2, 7, 20]
Solución!: [2, 7, 10]
Solución!: [2, 7, 14]
Solución!: [2, 7, 15]
Solución!: [2, 7, 7]
Solución!: [15]
Solución!: [21]
Solución!: [3]
Solución!: [3, 40]
Solución!: [3, 8]
Solución!: [3, 20]
Solución!: [3, 28]
Solución!: [3, 4]
Solución!: [3, 4, 10]
Solución!: [3, 4, 14]
Solución!: [3, 4, 5]
Solución!: [3, 4, 5, 7]
Solución!: [3, 4, 7]
Solución!: [3, 4, 7, 7]
Solución!: [3, 10]
Solución!: [3, 10, 14]
Solución!: [3, 14]
Solución!: [3, 35]
Solución!: [3, 5]
Solución!: [3, 5, 8]
Solución!: [3, 5, 14]
Solución!: [3, 5, 7]
Solución!: [3, 5, 7, 7]
Solución!: [3, 7]
Solución!: [3, 7, 8]
Solución!: [3, 7, 10]
Solución!: [3, 7, 14]
Solución!: [3, 7, 7]
Solución!: [35]
Solución!: [5]
Solución!: [5, 24]
Solución!: [5, 8]
Solución!: [5, 12]
Solución!: [5, 28]
Solución!: [5, 6]
Solución!: [5, 6, 14]
Solución!: [5, 6, 7]
Solución!: [5, 14]
Solución!: [5, 21]
Solución!: [5, 7]
Solución!: [5, 7, 8]
Solución!: [5, 7, 12]
Solución!: [5, 7, 7]
Solución!: [49]
Solución!: [7]
Solución!: [7, 24]
Solución!: [7, 8]
Solución!: [7, 12]
Solución!: [7, 20]
Solución!: [7, 28]
Solución!: [7, 10]
Solución!: [7, 14]
Solución!: [7, 15]
Solución!: [7, 21]
Solución!: [7, 7]
Solución!: [7, 7, 8]
Solución!: [7, 7, 10]