private static ArrayList<Integer> primos;
private static ArrayList<Integer> fatores;
private static ArrayList<Integer> elevado;
private static int num;
private static int aa;
private static int pro;
public static void main(String[] args)
{
elevado = new ArrayList<Integer>();
Scanner sc = new Scanner(System.in);
num = sc.nextInt();
primos = new ArrayList<Integer>();
for (int i = 2; i < 1000; i++)
{
boolean flag = true;
for (int j = 2; j < i - 1; j++)
{
if (i % j == 0)
{
flag = false;
break;
}
}
if (flag == true)
{
primos.add(i);
}
}
fatores = new ArrayList<Integer>();
while (num % primos.get(pro) != 0)
{
++pro;
}
while (num % primos.get(pro) == 0)
{
fatores.add(primos.get(pro));
num = num / primos.get(pro);
if (num % primos.get(pro) != 0)
{
++pro;
}
}
if(num !=1)
{
fatores.add(num);
}
System.out.println(fatores);
sc.close();
paraRaiz();
}
private static void paraRaiz()
{
}
Use HashMap
// <fator, qtd>
HashMap<Integer, Integer> map;
for (Integer f : fatores) {
int qtd = map.getOrDefault(f, 0);
map.put(f, qtd + 1);
}
for (Map.Entry<Integer, Integer> item: map.entrySet()) {
System.out.println("Map tem o fator " + item.getKey() + " repetido " + item.getValue() + " vezes");
}
1 curtida
Tentarei isso, vlw.