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

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:

[code]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)
{
    Scanner dados = new Scanner (System.in);
    int n;
    n=dados.nextInt();
    System.out.println(verPrimo(n));
}

}[/code]

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

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