Números primos

Programa que pida un número n y muestre todos los números primos menores o iguales que él (todos los primos que hay entre 2 y n).

Además, calcula el tiempo que tarda el programa en hacer los cálculos usando dos métodos diferentes.

Fichero NumerosPrimos.java

import java.util.Scanner;

public class NumerosPrimos {

    public static void main (String[] args) {
        Scanner scanner = new Scanner(System.in);
        long numero;
        long n;
        boolean esPrimo = true;
        // String mensaje;
        long inicio;
        long tiempo;

        System.out.print("Introduce un número: ");
        numero = scanner.nextInt();
        scanner.close();
        
        inicio = System.currentTimeMillis();
        for (n = 2; n < numero; n ++) {
            esPrimo = true;
            for (int i = 2; i <= Math.sqrt(n) && esPrimo; i ++) {
                if ((n % i) == 0) {
                    esPrimo = false;
                }
            }

            if (esPrimo) {
                //System.out.println("El número " + n + " es primo");
            }          
        }
        tiempo = System.currentTimeMillis() - inicio;
        System.out.println("Tiempo usando sqrt y esPrimo: " + tiempo + " ms.");

        inicio = System.currentTimeMillis();
        for (n = 2; n < numero; n ++) {
            esPrimo = true;
            for (int i = 2; i < n; i ++) {
                if ((n % i) == 0) {
                    esPrimo = false;
                }
            }

            if (esPrimo) {     
                //System.out.println("El número " + n + " es primo");
            }          
        }
        tiempo = System.currentTimeMillis() - inicio;
        System.out.println("Tiempo sin usar sqrt: " + tiempo + " ms.");
    }
}

 

Deja una respuesta