Reto: Cifras pares e impares
Generar un número aleatorio entero entre un millón y dos millones. Imprimir ese número en pantalla y decir cuántas cifras pares e impares tiene.
Método 1
Generamos un número aleatorio entero, lo convertimos a cadena constr
, recorremos sus valores con un bucle for
y por cada elemento lo convertimos nuevamente en número con int
para ver si se trata de un número par. Finalmente contamos los pares e imprimimos el resultado.from random import randint
x = randint(1000000, 2000001)
print(x)
x=str(x)
par=0
for i in x:
if int(i)%2==0:
par+=1
print('Hay un total de',par,'cifras pares')
print('Hay un total de',7-par,'cifras impares')
Método 2
En este caso no convertimos el número aleatorio en una cadena sino que operamos todo el tiempo con valores numéricos. Para obtener las cifras individuales que componen el número que debemos analizar hemos creado una expresiónz
que por ser muy larga hemos descompuesto en dos expresiones parciales que hemos denominado e0
y e1
.import random
x = random.randint(1000000, 2000001)
print(x)
par=0
for i in range(1,8):
e0=int(x/10**i)
e1=int(x/10**(i-1))
z=e1-e0*10 #obtenemos cada una de las cifras
if z%2==0:
par+=1
print('Hay un total de',par,'cifras pares')
print('Hay un total de',7-par,'cifras impares')
Para ilustrar el significado de los cálculos intermedios e0 y e1 elegimos el siguiente ejemplo para el número 1849253. La columna z nos proporciona cada una de la cifras por separado.
logre una manera sencilla de resolver esto, la idea es primero pasar el numero entero 'randint' a un 'str', para poder recorrerlo en un bucle 'for'. funciona perfectamente.
ResponderEliminardef numbers():
num = randint(1e6, 2e6)
num_str= str(num)
print('el numero es: ', num)
for i in num_str:
x = int(i)
if x % 2 == 0:
print('el numero: ', x, 'es par')
else:
print('el numero: ', x,'es impar')
numbers()
Olvide poner los contadores para saber cuantos números pares e impares hay, aquí la solución
ResponderEliminarfrom random import randint
def numbers():
num = randint(1e6, 2e6)
num_str= str(num)
print('el numero es: ', num)
count_p = 0
count_i = 0
for i in num_str:
x = int(i)
if x % 2 == 0:
print('el numero: ', x, 'es par')
count_p += 1
else:
print('el numero: ', x,'es impar')
count_i += 1
print('Hay ', count_p, ' numeros pares')
print('Hay ', count_i, 'numeros impares')
numbers()