Bom dia, alguem pode mim ajudar como resolver numeros multplos …
if(a == b){
j = a;
}else{
for (i=2;((a > 1) || (b > 1)); i++) {
while(((a % i) == 0) || ((b % i) == 0)){
if((a % i) == 0){
a = a/i;
Alguem pode mim ajudar solucionar achar os multplos de 3 e 5
EDIT - Por favor, use os tags [ code ] para postar seu código.
Você quer achar os multiplos de 3 e 5 em qual intervalo? Fazer isso até infinito é meio complicado…
[code]
//considerando que você quer valores de pMinimo até pMaximo
public ArrayList multiploTres(int pMinimo, int pMaximo)
{
ArrayList tRetorno = new ArrayList();
for (int i = pMinimo, i < pMaximo, i++)
if (i % 3 == 0)
tRetorno.add(i);
return tRetorno;
}
public ArrayList multiploCinco(int pMinimo, int pMaximo)
{
ArrayList tRetorno = new ArrayList();
for (int i = pMinimo, i < pMaximo, i++)
if (i % 5 == 0)
tRetorno.add(i);
return tRetorno;
}[/code]
E outra, "mim ajudar" também é complicado, hein?!
no codigo acima no loop for tem q trocar a virgula por ponto-e-virgula.
e o tipo parametrizado nao aceita tipo primitivo entao no lugar de ArrayList deve ser ArrayList.
Você pode otimizar muito o seu programa de duas formas:
-
Tire o resto entre o mínimo e o número que vc deseja tirar o múltiplo. Esse valor representa o quão “à frente” do próximo múltiplo o mínimo está. Então, basta subtrair esse número do mínimo e somar à num para achar o primeiro múltiplo da série;
-
A partir daí, basta somar o próprio num para achar o próximo múltiplo.
Isso permite dividir o tempo de cálculo proporcionalmente ao número que vc irá calcular o numero (o tempo será (min-max divididos por num).
Observe:
[code]
public List multiplo(int num, int min, int max)
{
//Busca do primeiro multiplo de num
List retorno = new ArrayList();
int valor = min - (min % num) + num;
//Adicionamos o primeiro multiplo na lista
if (valor <= max)
retorno.add(valor);
//Agora, basta somar num para achar o próximo multiplo
valor += num;
while (valor <= max) {
retorno.add(valor);
valor += num;
}
return retorno;
}[/code]
Uso:
System.out.println("Multiplos de 3: " + multiplo(3, 10, 10000));
System.out.println("Multiplos de 5:" + multiplo(5, 10, 10000));
Nesse método, o próprio min não está incluído no intervalo. Vc pode mudar o trecho inicial, caso queira incluí-lo. Basta usar o próprio valor quando o resto for 0.