Código de Java - Numeros raros

Numeros rarosgráfica de visualizaciones


Java

estrellaestrellaestrellaestrellaestrella(2)
Actualizado el 09 de Diciembre del 2014 por David (Creado el 07 de Diciembre del 2014)
1.962 visualizaciones desde el 07 de Diciembre del 2014. Una media de 21 por semana
Programa estructurado que devuelve los números raros hasta un número dado.
Un número es raro cuando verifica que para cualquier número m, menor que él y tal que ambos números sean primos entre sí, resulta que m es un número primo.

Requerimientos

Se recomienda usar Eclipse, aunque el código se puede ejecutar perfectamente bajo consola. Asegurarse eso sí, de dar el mismo nombre que tiene la clase al fichero fuente. En este caso , como la clase se llama Raro, debe guardarse en un fichero Raro.java

1.0
estrellaestrellaestrellaestrellaestrella(2)

Actualizado el 09 de Diciembre del 2014 (Creado el 07 de Diciembre del 2014)gráfica de visualizaciones de la versión: 1.0
1.963 visualizaciones desde el 07 de Diciembre del 2014. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import java.util.Scanner;
/**
 * Programa estructurado que devuelve los números raros hasta un número dado.
 * Un número es raro cuando verifica que para
 * cualquier número m, menor que él y tal que ambos números sean primos entre sí, resulta
 * que m es un número primo. 
 * @author David Robles Gallardo
 * @version 1.0
 */
public class Raro {
	/**
	 * Calcula el máximo común divisor de dos números dados
	 * @param n Primer número
	 * @param m Segundo número
	 * @return el máximo común divisor de ambos números
	 */
	public static int euclides(int n, int m){
		int resto=n%m;
		while(resto!=0){
			resto=n%m;
			m=n;
			m=resto;
		}
		return n;
	}
 
	/**
	 * Permite determinar si un número es primo mediante divisiones sucesivas hasta como máximo dividirlo por su raíz
	 * @param n Número del que se desea conocer si es primo
	 * @return booleano que indica si el número es primo o no
	 */
	public static boolean primo(int n){
		int raiz=(int)(Math.sqrt(n));
		boolean esPrimo=true;
		int numero=2;
		while(numero<=raiz && esPrimo){
			if(n%numero==0){
				esPrimo=false;
			}
			else{
				numero=numero+1;
			}
		}
		return esPrimo;
 
	}
 
	/**
	 * Solicita un número por teclado y calcula todos los números raros desde 3 hasta él.
	 * @param args Argumentos del programa
	 */
	public static void main(String []args){
		Scanner in=new Scanner(System.in);
		boolean esRaro=false;
		int contador, numero;
		do{
			System.out.println("Escriba un número entero positivo");
			numero=in.nextInt();
		}while(numero<3);
 
		System.out.println("Los números raros son: ");
		for(int i=3;i<numero;i++){
			esRaro=true;
			contador=1;
			while(esRaro && contador<i){
				if (euclides(contador,i)==1 && !primo(contador)){
						esRaro=false;
				}
				contador=contador+1;
				}
			        if(esRaro){
				                System.out.println(i+" es un número raro");
			        }
		       }
	   }
}



Comentarios sobre la versión: 1.0 (2)

gonzalo
09 de Diciembre del 2014
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder
Silvia
09 de Diciembre del 2014
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s2945