Lógica

2 respostas
edymrex

bem estou fazendo um prog que pega os divisores de um número que é dado de entrada como vcs podem ver no código que eu vo colocar logo abaixo:

import javax.swing.JOptionPane;


public class Divisores 
{
	public static void main(String args[])
	{
		int i;
		int cont;
		
		i=Integer.parseInt(JOptionPane.showInputDialog("Dígite o número"));
		for(int x = 1 ; x<=i; x++)
        {
 			if ((i%x)==0)
 			{
 				System.out.println(x);
 			}
 		}
	}

}

mais se o número for negativo eu não consigo tirar os divisores alguém tem ideia de como eu posso fazer…?

2 Respostas

Dieval_Guizelini

Com relação ao operador é o mesmo, ou seja %.

o problema será com o seu laço, que ao invés de ser crescente terá que ser o inverso. veja um exemplo:

import javax.swing.JOptionPane;

public class Divisores {
   public static void main(String args[]) {
       int i,cont;
       i=Integer.parseInt(JOptionPane.showInputDialog("Dígite o número"));
       if( i > 0 ) {
           for(int x = 1 ; x<=i; x++)   {
                if( (i%x)==0 )
                   System.out.println(x);
           }
       } else {
           for(int x = -1 ; x>=i; x--)   {
                if( (i%x)==0 )
                   System.out.println(x);
           }
       }
  }
}
edymrex

Muito obrigado…!

Criado 7 de outubro de 2006
Ultima resposta 7 de out. de 2006
Respostas 2
Participantes 2