como fazer : qual o maior numero primo(como faça para mostrar o maior numero primo
(exemplo: 1 até 10 , o maior numero primo é 7):
meu codigo:
sou iniciante
import java.util.Scanner;
public class Atividade {
public static void main(String[] args) {
Scanner leitura= new Scanner(System.in);
int f,in;
System.out.println(“primeiro numero:”);
in= leitura.nextInt();
System.out.println(“ultimo numero:”);
f= leitura.nextInt();
for(int i= in; i <= f; i++){
int re =0;
for(int k=1 ;k<=in; k++){
if (in%k ==0 ){
++re;
}
}
if(re == 2){
System.out.println("numero primo: " + in);
}
}
}
Olá.
Segue um exemplo comentado. Espero que ajude a entender. É logico que existem n maneiras de fazer inclusive algumas mais “bonitas”, porém para fim de entendimento da logica creio que vá lhe ajudar:
package aaparametros ;
import java.util.ArrayList ;
public class Atividade {
public static void main ( String [ ] args ) {
int menorNumeroDoIntervalo = 1 ; //aqui é onde voce vai ler o primeiro numero da sua sequencia
int maiorNumeroDoIntervalo = 100 ; //aqui é onde voce vai ler o ultimo numero da sua sequencia
int contaprimo = 0 ; //aqui temos um contador de primos para saber se o numero é primo ( divisivel somente por 1 e por ele meesmo ou nao)
ArrayList < Integer > primos = new ArrayList <> ( ) ; //aqui é a lista onde iremos colocar todos os primos que encontrarmos
//aqui vamos iterar sobre todos os numeros dentro do intervalo
for ( int x = menorNumeroDoIntervalo ; x <= maiorNumeroDoIntervalo ; x ++ ) {
//aqui vamos iterar e dividir cada um dos numeros do intervalo para saber se sao primos ou nao
for ( int i = x ; i >= menorNumeroDoIntervalo ; i -- ) {
//aqui testamos o resto da divisao pra saber se dividiu ou nao. Se % retornar sobra é porque nao dividiu ,caso retorne 0 fazemos a variavel contaprimo somar 1 ao valor que ela ja contem.
if ( x % i == 0 ) {
contaprimo ++ ;
}
}
//terminado o loop de testes verificamos se a variavel contaprimo é igual a 2 , se for é sinal que o numero so dividiu por 1 e por ele mesmo, logo , é um numero primo
if ( contaprimo == 2 ) {
System.out.println ( x + " = É primo" ) ;
// se o valor da variavel contaprimo mostrar que o numero na variavel x que estamos avaliando é um numero primo colocamos ele em uma lista
primos.add ( x ) ;
}
// zeramos o contador de primos para o proximo loop
contaprimo = 0 ;
}
//aqui pegamos o ultimo numero que adicionamos na lista de primos e teremos o maior primo encontrado no intervalo
System.out.println ( "O maior primo do intervalo é: " + primos.get ( primos.size ( ) - 1 ) ) ;
}
}
Porque multiplos de 2? Ele incrementa o i normalmente em uma unidade. É ineficiente porque o ciclo necessitava apenas de ir até à raiz quadrada de n e não até ao próprio n mas não é errado.