import java.util.Scanner;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
public class NumeroPrimo {
private static int TRUE = 1;
private static int FALSE = 0;
public static int primo(int n) {
int i;
for (i = 2; i < n; i++) {
if (n % i == 0) {
return FALSE;
} else {
return TRUE;
}
}
return FALSE;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num, recebe = 0;
do {
System.out.print("Entre com um numero inteiro e positivo maior que 1: ");
num = sc.nextInt();
} while (num < 2);
recebe = primo(num);
if (recebe == TRUE) {
System.out.printf("O numero %d e primo\n", num);
} else {
System.out.printf("O numero %d nao e primo\n", num);
}
}
}
Veja se lhe serve. Como os nobres amigos disseram, procure sempre formatar seu tópico com TAGS, etc. Todos ganham!
Exemplo para verificar se dado número é primo ou não utilizando for
@autor brunoprogramadorjava
*/
public class NumeroPrimo1 {
public static void main(String[] args) {
Scanner leitor = new Scanner(System.in);
int numPrimo;
int numDivisores = 0;
System.out.println("Digite um numero");
numPrimo = leitor.nextInt();
for(int i = 1; i <= numPrimo; i++){
if(numPrimo % i == 0){
numDivisores++;
}
}
if(numDivisores == 2){
System.out.println("O numero " + numPrimo +" é primo");
}else{
System.out.println("O numero " + numPrimo + " não é primo");
}
}
}
import java.util.Scanner;
/**
Exemplo para verificar se dado número é primo ou não utilizando while
public static void main(String[] args) {
int contador, i;
contador = 0;
i = 2;
Scanner leitor = new Scanner(System.in);
System.out.println("Digite um numero");
int numero = leitor.nextInt();
while (i < numero) {
if (numero % i == 0)
contador = contador + 1;
i++;
}
if (contador > 0)
System.out.println("O numero " + numero + " não é primo");
else
System.out.println("O numero " + numero + " é primo");
}
Usei a variáveis “número” (Esse valor será digitado pela pessoa que deseja saber se o número é realmente primo) “elemesmo” ( É a variável que vai dividir o número até chegar no valor dele mesmo) “contador” ( Que vai contar quantas vezes a divisão feita do número por ele mesmo chegou ao resultado igual a 0, se este número for menor ou igual a 2, ele é primo, ou se for maior que 2 não é primo)
Dá uma olhada nesse código, roda ele para ver como funciona.
[code]import java.util.Scanner;
public class Primos {
public static void main (String args[]){
Scanner scan = new Scanner (System.in);
int numero, elemesmo=0, resto, contador=0;
System.out.println("Digite um Número: ");
numero = scan.nextInt();
while ( numero >= elemesmo){
++elemesmo;
resto = numero % elemesmo;
if ( resto == 0){
contador++;
}
}
if ( contador <= 2) {
System.out.println("O Número "+numero+" é primo");
}
else
{
System.out.println("Numéro "+numero+" não é primo");
}
}
} [/code]
//Obrigado a todos que me responderam, mas no fim depois de vários testes acabei fazendo dessa forma
//mas todos os jeitos foram bons…
import java.util.Scanner;
public class NumeroPrimo {
public static void main(String[] args) {
long inicial = System.currentTimeMillis();
Scanner entrada = new Scanner(System.in);
int numPrimo = 0;
int numDivisores = 0;
System.out.print("Digite um número:");
numPrimo = entrada.nextInt();
for (int i = 2; i < (int) (numPrimo/ 2 + 1 ); i++) {
if (numPrimo % i == 0) {
numDivisores++;
break;
}
}
if (numDivisores == 0) {
System.out.println("O numero " + numPrimo + " é primo");
} else {
System.out.println("O numero " + numPrimo + " não é primo");
}
long fim = System.currentTimeMillis();
long total = fim - inicial;
System.out.println(total);
}
}
public void solve() {
}
public static void main(String[] args) {
Main main = new Main();
int n = 0;
Scanner sc = new Scanner(System.in);
while (n != -1) {
System.out.print("Digite -1 para sair ou digite qualquer outro numero: ");
if ((n = sc.nextInt()) == -1) {
System.exit(0);
} else {
System.out.println("O numero " + n + " " + (main.isPrime(n) == true ? " é primo" : " nao é primo."));
}
}
}
public boolean isPrime(int n) {
if (n < dp.length) {
if (dp[n] == 2)
return false;
else if (dp[n] == 1) {
return true;
} else {
if (n <= 1)
return false;
if (n == 2)
return true;
if (n % 2 == 0)
return false;
int m = (int) Math.sqrt(n);
for (int i = 3; i <= m; i += 2)
if (n % i == 0) {
dp[n] = 2;
return false;
}
dp[n] = 1;
return true;
}
} else {
if (n <= 1)
return false;
if (n == 2)
return true;
if (n % 2 == 0)
return false;
int m = (int) Math.sqrt(n);
for (int i = 3; i <= m; i += 2)
if (n % i == 0) {
return false;
}
return true;
}
}