Esse é o meu codigo, alguem pode me ajudar
import java.util.Scanner;
public class Primos {
public static void main (String [] args) {
int i = 0 ,intervalo, cont;
Scanner teclado = new Scanner(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 + ",");
else
System.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á?
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
import java.util.Scanner;
public class Primos {
public static void main (String [] args) {
int numeroRecebido, contador, contadorTemp ;
double variavelDouble;
Scanner teclado = new Scanner(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(".");
}
}
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.
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.
Se mais alguém precisar, este código deve funcionar, eu não testei
boolean naoPrimo;
for(int i = 2; i<nMax; i++){
naoPrimo = false;
for(int j = 2; j<i; j++){
if(i%j==0){
naoPrimo = true;
break;
}
if(!naoPrimo) System.out.println( i + "\t");
}
}