-
Notifications
You must be signed in to change notification settings - Fork 0
/
Analizador de número
81 lines (68 loc) · 2.36 KB
/
Analizador de número
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
77
78
79
80
81
def es_par(num):
return num % 2 == 0
def es_primo(num):
if num < 2:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
def analizar_numero(num):
def imprimir_con_retraso(mensaje):
for char in mensaje:
print(char, end='', flush=True)
if isinstance(num, int):
tipo = "entero"
elif isinstance(num, float):
tipo = "decimal"
else:
tipo = "no válido"
imprimir_con_retraso(f"Tipo de número: {tipo}\n")
if isinstance(num, (int, float)):
if es_par(num):
imprimir_con_retraso(f"El número {num} es par.\n")
else:
imprimir_con_retraso(f"El número {num} es impar.\n")
if isinstance(num, int):
if es_primo(num):
imprimir_con_retraso(f"El número {num} es primo.\n")
else:
imprimir_con_retraso(f"El número {num} no es primo.\n")
imprimir_con_retraso(f"Números primos de los que {num} es múltiplo:\n")
for i in range(2, num):
if es_primo(i) and num % i == 0:
imprimir_con_retraso(f"{i}\n")
else:
imprimir_con_retraso("No se puede determinar para este número.\n")
def mensaje_bienvenida():
print("Bienvenida al Analizador de Números")
print("Elige:")
print("1. Número")
print("2. Salir")
def obtener_opcion_usuario():
while True:
opcion = input("Elige opción (1 o 2): ")
if opcion in ['1', '2']:
return opcion
else:
print("Opción inválida.")
while True:
mensaje_bienvenida()
opcion = obtener_opcion_usuario()
if opcion == '2':
print("¡Chao pescao!")
break
if opcion == '1':
try:
entrada = input("Introduce un número (o 'salir' para terminar): ")
if entrada.lower() == 'salir':
print("Chao pescao")
break
numero = eval(entrada)
analizar_numero(numero)
except (NameError, SyntaxError):
print("Entrada inválida. Ingresa un número entero o decimal.")
except ZeroDivisionError:
print("División por cero no permitida.")
except Exception as e:
print(f"Error: {e}")