Fórum Programar um algoritmo para mostrar numeros primos #607326
06/01/2020
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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
Curtir tópico
+ 0Post mais votado
07/01/2020
1 2 3 | if ((i% 2 != 0 ) && (i% 3 != 0 )){ System.out.println(Integer.valueOf(i)); } |
Manoel Junior

Gostei + 1
Mais Posts
07/01/2020
Weslley Felix
1 2 3 | 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 ?
Gostei + 0
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?
Gostei + 0
07/01/2020
Fernando Junior
1 2 3 | 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.
Gostei + 0
07/01/2020
Fernando Junior
1 2 3 | 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.
Gostei + 0
07/01/2020
Sadasd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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 ; } } } } } } } |
Gostei + 1
07/01/2020
Weslley Felix
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | /*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 ); } } |
Gostei + 0
07/01/2020
Weslley Felix
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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
Gostei + 0
08/01/2020
Fernando Junior
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | /*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);
Gostei + 0
10/01/2020
Manoel Junior
1 2 3 | 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!!!
Gostei + 0
10/01/2020
Vinícius Moraes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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);
}
}
Gostei + 0
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;
}
//
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)