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));
}
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.");
}
}
}
}