Programar um algoritmo para mostrar numeros primos
06/01/2020
0
import java.util.Locale; import java.util.Scanner; public class primeNumbers { public static void main(String[] args) { Locale.setDefault(Locale.US); Scanner scan = new Scanner(System.in); System.out.println("Enter a number"); int n = scan.nextInt(); for(int a = 0;a<=n;a++) { if(a%2==1) { System.out.println(+a); } } } }
Qual alteração eu poderia fazer na minha lógica para fazer funcionar esse algoritmo ?
Weslley Felix
Post mais votado
07/01/2020
if ((i%2!=0) && (i%3!=0)){ System.out.println(Integer.valueOf(i)); }
Manoel Junior
Mais Posts
07/01/2020
Weslley Felix
if ((i%2!=0) && (i%3!=0)){ System.out.println(Integer.valueOf(i)); }
Olá Manoel, obrigado pela resposta e ajuda !
Por que no caso seria uma divisao por 3 ?
07/01/2020
Fernando Junior
[code=java
System.out.println("Enter a number");
int n = scan.nextInt();
for(int a = 0;a<=n;a++) {
if(a%2==1) {
System.out.println(+a);
}
}
[/code]
Você está apenas imprimindo os números ímpares, ou seja, os que divididos por dois tenham resto. Qual a sua definição para números primos? Tem que partir daí?
Como você saber que 2, 3, 5, 7, 11 e 13 são primos?
07/01/2020
Fernando Junior
if ((i%2!=0) && (i%3!=0)){ System.out.println(Integer.valueOf(i)); }
A solução que você deu apresenta os números que NÃO são divisíveis por 2 e 3:
DIVISÍVEIS POR 2 E 3:
0, 6, 12, 18, ..
OS QUE SÃO IMPRESSOS:
1, 2, 3, 4, 5, 7, 8, 9, 10, 11, ...
uma lista que contém primos e não primos.
07/01/2020
Fernando Junior
if ((i%2!=0) && (i%3!=0)){ System.out.println(Integer.valueOf(i)); }
Olá Manoel, obrigado pela resposta e ajuda !
Por que no caso seria uma divisao por 3 ?
Para cada número considerado você deve buscar dividi-lo por 2, ... até ele mesmo e contar. Se apenas for divisível por ele é porque é primo, quando não, não é primo.
Exemplos:
Se você quiser saber se 8 é primo, tente dividi-lo por:
2, 3, 4, 5, 6, 7 e 8.
Vai ver que ele é divísivel por 2, 4 e 8 e portanto não é primo
Se você quiser saber se 11 é primo, tente dividi-lo por:
2,3,4,5,6,7,8,9,10,11
e verá que é divisível só por 11 e por isso é primo.
07/01/2020
Sadasd
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Digite um número"); int numero = scan.nextInt(); if(numero <= 1){ System.out.println("Nenhum número primo encontrado"); }else if(numero == 2){ System.out.println(2); }else{ for(int i = numero; i > 1; i--){ for(int j = i - 1; j > 0; j--){ if(j == 1){ System.out.println(i); }else{ if(i%j == 0){ break; } } } } } } }
07/01/2020
Weslley Felix
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Digite um número"); int numero = scan.nextInt(); if(numero <= 1){ System.out.println("Nenhum número primo encontrado"); }else if(numero == 2){ System.out.println(2); }else{ for(int i = numero; i > 1; i--){ for(int j = i - 1; j > 0; j--){ if(j == 1){ System.out.println(i); }else{ if(i%j == 0){ break; } } } } } } }
booa kkk
eu fiz essa gambiarra aqui óia
/*desenvolva um algoritmo para detectar numeros primos */ import java.util.Locale; import java.util.Scanner; public class primeNumbers { public static void main(String[] args) { Locale.setDefault(Locale.US); Scanner scan = new Scanner(System.in); System.out.println("Enter a number"); int n = scan.nextInt(); for (int a = 1; a <= n; a++) { if ((a % 2 != 0) && (a % 3 != 0) && (a % 5 != 0) && (a % 77 != 0) && (a % 49 != 0) && (a % 91 != 0)) { System.out.println(Integer.valueOf(a)); } } System.out.println(2); System.out.println(3); System.out.println(5); } }
07/01/2020
Weslley Felix
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Digite um número"); int numero = scan.nextInt(); if(numero <= 1){ System.out.println("Nenhum número primo encontrado"); }else if(numero == 2){ System.out.println(2); }else{ for(int i = numero; i > 1; i--){ for(int j = i - 1; j > 0; j--){ if(j == 1){ System.out.println(i); }else{ if(i%j == 0){ break; } } } } } } }
Muito bom ... vou adaptar pro meu código com certeza
08/01/2020
Fernando Junior
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Digite um número"); int numero = scan.nextInt(); if(numero <= 1){ System.out.println("Nenhum número primo encontrado"); }else if(numero == 2){ System.out.println(2); }else{ for(int i = numero; i > 1; i--){ for(int j = i - 1; j > 0; j--){ if(j == 1){ System.out.println(i); }else{ if(i%j == 0){ break; } } } } } } }
booa kkk
eu fiz essa gambiarra aqui óia
/*desenvolva um algoritmo para detectar numeros primos */ import java.util.Locale; import java.util.Scanner; public class primeNumbers { public static void main(String[] args) { Locale.setDefault(Locale.US); Scanner scan = new Scanner(System.in); System.out.println("Enter a number"); int n = scan.nextInt(); for (int a = 1; a <= n; a++) { if ((a % 2 != 0) && (a % 3 != 0) && (a % 5 != 0) && (a % 77 != 0) && (a % 49 != 0) && (a % 91 != 0)) { System.out.println(Integer.valueOf(a)); } } System.out.println(2); System.out.println(3); System.out.println(5); } }
Não era melhor então:
system.out.printl(2);
system.out.printl(3);
system.out.printl(5);
system.out.printl(7);
...
system.out.printl(97);
10/01/2020
Manoel Junior
if ((i%2!=0) && (i%3!=0)){ System.out.println(Integer.valueOf(i)); }
Olá Manoel, obrigado pela resposta e ajuda !
Por que no caso seria uma divisao por 3 ?
Bom dia, não é uma divisão por 3. É uma condição para verificar o RESTO da divisão, então caso seja diferente de zero, pelo fato de não ser divisível por 2 ou 3 é considerado primo. Pode testar, é exibido somente os números primos!!!
10/01/2020
Vinícius Moraes
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Digite um número"); int numero = scan.nextInt(); if(numero <= 1){ System.out.println("Nenhum número primo encontrado"); }else if(numero == 2){ System.out.println(2); }else{ for(int i = numero; i > 1; i--){ for(int j = i - 1; j > 0; j--){ if(j == 1){ System.out.println(i); }else{ if(i%j == 0){ break; } } } } } } }
Isso vai imprimir na ordem incorreta, daria pra fazer:
for(int i = 2; i ≤ numero; i++){
Boolean primo = true;
for(int j = 2; j ≤ i; j++){
if(i%j == 0 && i!=j){
primo = false;
break;
}
}
if(primo){
System.out.println(i);
}
}
10/01/2020
Isaias Dias
//
Locale.setDefault(Locale.US);
Scanner scan = new Scanner(System.in);
System.out.println("Enter a number");
int n = scan.nextInt();
for (int a = 2; a <= n; a++) {
if ( numPrimo(a) ) {
System.out.println(a);
}
}
//
Esse trecho de código vai dentro do método main. Iniciamos a variável a=2 pois o número 1 cumpre as condições mas não é considerado número primo. Fazemos a iteração da variável "a" onde pra cada iteração chamaremos uma função booleana passando como parâmetro o valor atual da variável "a" e verificar se este valor é primo ou não.
Fora do método main você irá criar o método que ira verificar se um número é primo ou não da seguinte forma:
//
private static boolean numPrimo( int n ){
for(int i = 2; i < n; i++){
if( n % i == 0)
return false;
}
return true;
}
//
Clique aqui para fazer login e interagir na Comunidade :)
Inserção de url
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.