Quero saber o que estou fazendo de errado? O propósito do programa é mostrar todos o números primos do 1 ao 500 só que não sei oq fazer, eu sei ver se um número é primo, mas n sei fazer isso repetir quinhentas vezes. Alguém me ajuda pf !
public class ex4
{
public static void main (String [] args)
{
// numero primo = ele dividido por ele mesmo e dividido por 1
java.util.Scanner teclado = new java.util.Scanner(System.in);
System.out.println("\f");
int contdivi = 0;
for (int num = 1; num <= 500; num ++){
for (int i = 1; i <= num; i ++)
{
if(num % i == 0)
{
contdivi = contdivi + 1;
if (contdivi == 2)
{
System.out.println(" number is primo: "+num);
}
else
{
}
}
else if (num % i == 1)
{
}
}
}
}
}
Boa noite, José. Veja o fonte que fiz abaixo e vê se resolve o teu problema.
public class Exercicio_04
{
public static void main (String[] args)
{
System.out.println("Números primos de 1 a 500 :");
for (int numero = 1; numero <= 500; numero++)
{
if (numero % 2 == 0)
{
System.out.print(numero + "\t");
}
}
}
}
Irei abrir uma exceção dessa vez, não costumo resolver programas básicos, mas apontar o caminho correto:
public class ex4 {
public static void main (String [] args) {
// numero primo = ele dividido por ele mesmo e dividido por 1
java.util.Scanner teclado = new java.util.Scanner(System.in);
System.out.println("\f");
int contdivi;
for(int num=1; num<=500; num++) {
contdivi = 0;
for(int i=1; i<=num; i++) {
if(num % i == 0) {
contdivi++;
if(contdivi > 2)
break;
}
}
if(contdivi == 2)
System.out.println("Número é primo: " + num);
}
}
}
Se contdivi > 2 então não é primo assim não precisa ir até o fim do for interno, o break faz o for interno terminar.
Quando o for interno termina, por causa do break ou por ter chegado ao final, então verifica se contdivi é igual a 2, nesse caso então o número é primo.