Numeros Multiplos

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:

  1. 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;

  2. 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.