Los PROBLEMAS se han de definir de manera general y precisa, sin resquicios para la ambiguedad.
"Dado un entero positivo n, determinar si es primo".
El ALGORITMO que ha de resolver el problema, se forma por un conjunto de reglas que deben resolver el problema de forma exacta y efectiva en tiempo finito.
"1.- Considerar todos los enteros comprendidos entre 2 y n-1.
2.- Para cada entero de esta sucesión, comprobar si divide a n.
3.- Si n es dividido por algún número, no es primo.
4.- Si n no es dividido por ninguno, es primo.
El PROGRAMA:
import java.util.*;
public class EsPrimo{
public static void main(String[] arg){
Scanner teclado = new Scanner(System.in).useLocale(Locale.US);
System.out.println("CONOCER SI UN NUMERO POSITIVO ES PRIMO.");
System.out.println("Introduzca un entero positivo cualquiera");
int n = teclado.nextInt();
if(n>0) System.out.println(esPrimo(n));
else System.out.println("Introduzca un entero positivo cualquiera");//repite entrada n
}
public static boolean esPrimo(int n){
int i = 2;boolean devuelve = false;
if (n==1||n==2||n==3)devuelve = true;
else{
while(i<n-1&&n%(double)i!=0.0)
i++;
if (i+1==n) devuelve = true;
else devuelve = false;
}
return devuelve;
}
}
No hay comentarios:
Publicar un comentario