FPRO-examen Laboratorio-2015-2016
FPRO-examen Laboratorio-2015-2016
FPRO-examen Laboratorio-2015-2016
Ejercicio 1
Elaborar un programa Java que, dado un número positivo, escriba en pantalla el doble del
número entero resultante de invertir sus cifras. Por ejemplo, si la entrada fuese 123 debería
escribir en pantalla 642 (el doble de 321).
Ejercicio 2
Elabore un programa Java que imprima la figura de un rombo rectángulo ajustado a la
izquierda, formada por asteriscos. El tamaño del rombo se lee como dato, y es el número de
líneas de su mitad superior incluyendo el centro. Por ejemplo, si la entrada fuese 4, la
figura que aparecería en pantalla sería:
*
***
*****
*******
*****
***
*
Ejercicio 3
Escribir un programa Java que escriba en pantalla los factores primos de un número entero
estrictamente positivo dado como entrada.
Ejercicio 4
Dado un número positivo n se define la función de Euler relativa a n como el número de
enteros positivos inferiores a n que son primos con n (dos números son primos entre sí
cuando el máximo común divisor de ambos números es la unidad). Por ejemplo la función
de Euler de 2 es 1, la de 4 es 2 (cuenta 1, 3), la de 6 es 2 (cuenta 1, 5), la de 10 es 4 (cuenta
1, 3, 7, 9) etc. Elaborar un programa Java que implemente la función de Euler relativa a
cualquier número entero positivo.
Ejercicio 5
Elaborar un programa Java que lea un número n por teclado y escriba en pantalla la
distancia entre cada par de primos contiguos menores que n. Por ejemplo, si el número
introducido es 15, los pares de primos menores que él son: 1-2, 2-3, 3-5, 5-7, 7-11, 11-13,
de modo que el programa debería responder: 1, 1, 2, 2, 4, 2.
1
Grado en Ingeniería Informática e INDAT Curso 2015-2016
Ejercicio 6
Se definen los números triangulares como los obtenidos sumando los números naturales
sucesivos 1, 2, 3, .... Es decir, los primeros números triangulares son 1, 3, 6, 10, etc. Escriba
una función java que devuelva el n-ésimo número triangular, siendo n >= 1.
Ejercicio 7
La multiplicación “a la rusa” permite realizar el producto de dos números enteros
utilizando solo sumas y divisiones o productos por dos. El método consiste en realizar
sucesivamente las siguientes operaciones: multiplicar uno de los números por 2 y obtener la
división entera del otro, también entre 2. Se detiene el proceso al obtener como cociente de
la división un 1. Por ejemplo, para multiplicar 23 por 64 se obtienen las dos columnas
siguientes:
23 64
11 128
5 256
2 512
1 1024
A continuación, se suman los números de la columna de la derecha que se corresponden
con números impares en la columna de la izquierda, (en este caso: 64+128+256+1024) y
el resultado de la suma (en este ejemplo 1472) es el producto de los números iniciales.
Elaborar un programa en Java que multiplique mediante este método dos números enteros
positivos introducidos por teclado, mostrando el proceso.
Ejercicio 8
Considerese un número entero estrictamente positivo, n. Si n es par, se divide entre 2
(n/2) y si es impar, se multiplica por 3 y se le suma (3n+1). El proceso se repite
indefinidamente con el resultado y se para si se encuentra el 1.
La conjetura de Collatz (tiene otra infinidad de nombres) dice que, sea cual sea el número
de partida, antes o después se alcanza el 1. La conjetura aún no se ha demostrado ni
refutado, pero se ha comprobado para todos los números menores que 260.
Por ejemplo, para el 6, la sucesión es: 6, 3, 10, 5, 16, 8, 4, 2, 1 y para el 22, la sucesión
es: 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1
Elabore una función Java que devuelva, para cada entero estrictamente positivo n, la
cantidad de números que aparece en la sucesión hasta encontrar el 1 (extremos incluídos).
Llamemos longCiclo a esta función. Por ejemplo, longCiclo(6)=9,
longCiclo(22)=16.
Utilizando la función longCiclo, escribir un programa Java que, dados dos números
leídos por teclado, escriba en pantalla el valor máximo de longCiclo de los números
comprendidos entre los dos dados, ambos inclusive. Por ejemplo para los valores de
entrada 1 y 5, la salida debe ser 8.