Preciso criar um programa que exiba os números primos, dentro de um intervalo determinado pelo usuário! e não to conseguindo
6 respostasResolvido
java
M
MatheusBorges
Esse é o meu codigo, alguem pode me ajudar
importjava.util.Scanner;publicclassPrimos{publicstaticvoidmain(String[]args){inti=0,intervalo,cont;Scannerteclado=newScanner(System.in);System.out.println("Entre com o intervalo de numeros ");n=teclado.nextInt();for(cont=1;cont<=intervalo;cont++){if(cont%i==0)System.out.println(i+",");elseSystem.out.println(" fim ")}}}
Podemos te ajudar, mas qual é sua dúvida?
O que o programa está fazendo? O que você esperava que ele fizesse?
Dá algum erro? Se sim, qual a mensagem?
Pelo código que postou, está meio longe de fazer o que o enunciado pede. Em qual parte exatamente você está?
M
MatheusBorges
Minha duvida é em relação ao uso de estruturas de repetição, fiz correções no código, no momento o erro que acontece é que ele não imprimi os números primos.
exemplo: peço a ele que imprima todos os números primos até 15, mas isso não acontece, ele exibe somente o numero 1
M
MatheusBorges
import java.util.Scanner;
public class Primos {
publicstaticvoidmain(String[]args){intnumeroRecebido,contador,contadorTemp;doublevariavelDouble;Scannerteclado=newScanner(System.in);System.out.println("Digite um numero e exibirei os numeros primos de 1 ate ele. ");numeroRecebido=teclado.nextInt();contador=1;System.out.print("\n Os numero primos de 1 ate "+numeroRecebido+" sao: 1 ");while(contador<=numeroRecebido){contadorTemp=1;while(contadorTemp<=contador){variavelDouble=contador%contadorTemp;if((variavelDouble==0)&&(contador!=contadorTemp)){contadorTemp=contador+1;}if((variavelDouble==0)&&(contador==contadorTemp)){System.out.print(" , "+contador);}contadorTemp++;}contador++;}System.out.print(".");}
}
A
AbelBueno
Ok, se tem correçoes no seu código, poste novamente, assim a gente sabe em que ponto você está.
No seu primeiro exemplo, você está imprimindo a variável i, toda vez que a condiçao cont % i for zero.
Só que você coloca o valor zero em i e nunca mais mexe nele, ou seja será sempre zero.
Daí você tá buscando o resto entre cont e zero… isso provavelmente vai dar um erro de divisao por zero.
A
AbelBueno
Ok, eu tinha postado antes de ver que tinha colocado seu código, vamos analisar.
Vi que você mudou o enunciado e desistiu dos fors… geralmente for é mais simples de entender a lógica nesses casos, mas enfim…vamos ver seu problema agora.
Seu código tá quase funcionando (apesar de ser difícil de entender), mas você só esqueceu um pequeno detalhe.
Todo número vai ter resto zero quando divdido por 1. Quando você inicia contadorTemp com 1, você garante que todo número nao vai ser considerado primo. Se iniciar com 2 já resolve seu problema.