Número primo, aplicação de restrição

1 resposta
prfs91

E se eu tenho um problema para resolver como numero primo.
Mais aí a questão pediu uma restrição.

- |N| < 2 elevado a 31

O código que eu já tenho:

import java.util.Scanner;
public class Primo
{
    public static String verPrimo (int x)
    {
        int cont = 0;
        int num = x;
        for (int i=1;i&lt;=x;i++)
            if (num%i==0)
                cont +=1;
        if (cont&gt;2)
            return &quot;nao&quot;;
        else
            return &quot;sim&quot;;
    }
    
    public static void main (String[]args)
    {
        Scanner dados = new Scanner (System.in);
        int n;
        n=dados.nextInt();
        System.out.println(verPrimo(n));
    }
}

Como aplico a restrição nesse código?

1 Resposta

W

Se absoluto de N deve ser menor do que 2^31, significa que isso é para impedir entrada de valores que não caibam num Integer ou int.

Você já fez a restrição quanto chamou dados.nextInt(). Para ficar mais claro, peça para o usuário informar o número correto caso ele erre:

import java.util.InputMismatchException;
import java.util.Scanner;

public class Primo
{
    public static String verPrimo (int x)
    {
        int cont = 0;
        int num = x;
        for (int i=1;i<=x;i++)
            if (num%i==0)
                cont +=1;
        if (cont>2)
            return "nao";
        else
            return "sim";
    }
    
    public static void main (String[]args)
    {

    	boolean sucesso = false;

        while (!sucesso) {
        
	        try {
	        
	            Scanner dados = new Scanner (System.in);

	            int n;
	
	            System.out.println(String.format("Informe um número inteiro entre %d e %d:", Integer.MIN_VALUE, Integer.MAX_VALUE));

	            n = dados.nextInt();
	
	            System.out.println(verPrimo(n));
	            
	            sucesso = true;
	            
	        } catch(InputMismatchException e) {
	            System.err.println("Número inválido. Tente de novo.");
	        }

        }


    }

}

wiliamps

Criado 11 de novembro de 2012
Ultima resposta 11 de nov. de 2012
Respostas 1
Participantes 2