Fórum Programar um algoritmo para mostrar numeros primos #607326
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
Curtir tópico
+ 0Post mais votado
07/01/2020
if ((i%2!=0) && (i%3!=0)){
System.out.println(Integer.valueOf(i));
}
Manoel Junior
Gostei + 1
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 ?
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
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
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
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
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);
}
}
Gostei + 0
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
Gostei + 0
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);
Gostei + 0
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!!!
Gostei + 0
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);
}
}
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 :)
Inserção de url
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.