Skip to content

Commit 08dd85c

Browse files
authored
mouredev#35 - Python
Ejercicio mouredev#35 del Roadmap 2024
1 parent 7ddc82b commit 08dd85c

File tree

1 file changed

+58
-0
lines changed
  • Roadmap/35 - REPARTIENDO LOS ANILLOS DE PODER/python

1 file changed

+58
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
""" * EJERCICIO:
2+
* ¡La temporada 2 de "Los Anillos de Poder" está a punto de estrenarse!
3+
* ¿Qué pasaría si tuvieras que encargarte de repartir los anillos
4+
* entre las razas de la Tierra Media?
5+
* Desarrolla un programa que se encargue de distribuirlos.
6+
* Requisitos:
7+
* 1. Los Elfos recibirán un número impar.
8+
* 2. Los Enanos un número primo.
9+
* 3. Los Hombres un número par.
10+
* 4. Sauron siempre uno.
11+
* Acciones:
12+
* 1. Crea un programa que reciba el número total de anillos
13+
* y busque una posible combinación para repartirlos.
14+
* 2. Muestra el reparto final o el error al realizarlo.
15+
"""
16+
17+
from random import randint
18+
19+
def is_prime(number:int):
20+
if number ==1: #en el caso de este programa, el número nunca podrá ser 0. En otro caso habría que evaluar number < 2
21+
return False
22+
else:
23+
for index in range(2,int(number**0.5)+1): #se evalúan valores desde 2 hasta la raíz cuadrada del número
24+
if number % index == 0: # y si la división entre el número y alguno de esos valorers tien resto 0
25+
return False #entonces no es un número primo.
26+
return True
27+
28+
def is_odd(number:int):
29+
return number % 2 != 0
30+
31+
def is_even(number:int):
32+
return number %2 == 0
33+
34+
THE_ONE_RING = 1
35+
print("Te doy la bienvenida al programa de reparto de LOS ANILLOS DE PODER")
36+
rings = int(input("Dime el número de Anillos de Poder a Repartir: "))
37+
#rings = 9
38+
if rings <= 5:
39+
print("No hay suficientes anillos para repartir")
40+
else:
41+
sauron = THE_ONE_RING
42+
while True:
43+
rings_aux = rings-sauron
44+
men = randint(1,rings_aux)
45+
if is_even(men):
46+
rings_aux -= men
47+
if rings_aux >= 3:
48+
dwarven = randint(1,rings_aux)
49+
if is_prime(dwarven):
50+
rings_aux -= dwarven
51+
52+
if rings_aux > 0:
53+
elven = rings_aux
54+
if is_odd(elven):
55+
if sauron+men+dwarven+elven == rings:
56+
print("LOS ANILLOS SE HAN REPARTIDO CORRECTAMENTE")
57+
print(f"TOTAL DE ANILLOS: {rings}\n- SAURON: {sauron}\n- HOMBRES: {men}\n- ENANOS: {dwarven}\n- ELFOS: {elven}")
58+
break

0 commit comments

Comments
 (0)