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()
{
}
Estou tentando desenvolver um algoritmo que exiba a fatoração dos números ex: √12 = 2√3, porém o máximo que consegui foi fazer o programa exibir 2x2x3, alguém sabe como resolver isso?
2 Respostas
D
Solucao aceita
1 like
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");
}
Tentarei isso, vlw.
Criado 23 de junho de 2018
Ultima resposta 23 de jun. de 2018
Respostas 2
Participantes 2
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo