Bucle while - Soluciones (1)

Se ofrecen a continuación unas posibles soluciones de los ejercicios (1) de bucle while.

Bucle while (1) - 1

primero = int(input("Escriba un número: "))
segundo = int(input("Escriba un número mayor que " + str(primero) + ": "))

while segundo <= primero:
    print(segundo, "no es mayor que", str(primero) + ". Inténtelo de nuevo: ",
          end="")
    segundo = int(input())

print()
print("Los números que ha escrito son", primero, "y", str(segundo) + ".")
print("Programa terminado")

Bucle while (1) - 2

primero = float(input("Escriba un número: "))
segundo = float(input("Escriba un número mayor que " + str(primero) + ": "))

while segundo > primero:
    segundo = float(input("Escriba un número mayor que " + str(primero) + ": "))

print()
print(segundo, "no es mayor que", str(primero) + ".")
print("Programa terminado")

Bucle while (1) - 3

primero = int(input("Escriba un número: "))
segundo = int(input("Escriba un número mayor que " + str(primero) + ": "))

while segundo > primero:
    primero = segundo
    segundo = int(input("Escriba un número mayor que " + str(primero) + ": "))

print()
print(segundo, "no es mayor que", str(primero) + ".")
print("Programa terminado")

Bucle while (1) - 4

objetivo = int(input("Escriba la cantidad de números positivos a solicitar: "))
while objetivo < 1:
    objetivo = int(input("La cantidad debe ser mayor que 0. Inténtelo de nuevo: "))

print()
numero = int(input("Escriba un número: "))
total = 1
if numero > 0:
    cantidad = 1
else:
    cantidad = 0

while cantidad < objetivo:
    numero = int(input("Escriba otro número: "))
    if numero > 0:
        cantidad += 1
    total += 1

print()
if cantidad == 1:
    print("Ha escrito 1 número positivo.")
else:
    print("Ha escrito", total, "números,", objetivo, "de ellos positivos.")
print("Programa terminado")

Bucle while (1) - 5

numero = int(input("Escriba un número: "))
suma = 0

while numero > 0:
    suma += numero
    numero = int(input("Escriba otro número: "))

print()
print("La suma de los números positivos introducidos es", str(suma) + ".")
print("Programa terminado")

Bucle while (1) - 6

limite = float(input("Escriba el valor límite: "))
while limite <= 0:
    limite = float(input("El límite debe ser mayor que 0. Inténtelo de nuevo: "))

numero = float(input("Escriba un número: "))
suma = 0
suma += numero

while suma < limite:
    numero = float(input("Escriba otro número: "))
    suma += numero

print()
print("Ha superado el límite. La suma de los números positivos introducidos es", str(suma) + ".")
print("Programa terminado")

Bucle while (1) - 7

minimo = int(input("Escriba un número: "))
maximo = int(input("Escriba un número mayor que " + str(minimo) + ": "))
while minimo >= maximo:
    maximo = int(input(str(maximo) + " no es mayor que " + str(minimo) + ".Inténtelo de nuevo: "))

numero = float(input("Escriba un número entre " + str(minimo) + " y " + str(maximo) + ": "))
contador = 0

while minimo <= numero <= maximo:
    contador += 1
    numero = float(input("Escriba un número entre " + str(minimo) + " y " + str(maximo) + ": "))

print()
if contador == 0:
    print("No ha escrito ningún número entre", minimo, "y", str(maximo) + ".")
elif contador == 1:
    print("Ha escrito 1 número entre", minimo, "y", str(maximo) + ".")
else:
    print("Ha escrito", contador, "números entre", minimo, "y", str(maximo) + ".")
print("Programa terminado")

Bucle while (1) - 8

numero = int(input("Escriba un número par: "))
while numero % 2 != 0:
    numero = int(input(str(numero) + " no es un número par. Inténtelo de nuevo: "))
contador = 1
respuesta = input("¿Quiere escribir otro número par? (S/N) ")

while respuesta == "S":
    numero = int(input("Escriba un número par: "))
    while numero % 2 != 0:
        numero = int(input(str(numero) + " no es un número par. Inténtelo de nuevo: "))
    contador += 1
    respuesta = input("¿Quiere escribir otro número par? (S/N) ")

print()
if contador == 0:
    print("No ha escrito ningún número par")
elif contador == 1:
    print("Ha escrito 1 número par")
else:
    print("Ha escrito", contador, "números pares.")
print("Programa terminado")

Bucle while (1) - 9

Un algoritmo sencillo, pero poco eficiente, sería el siguiente:

numero = int(input("Escriba un número entero mayor que 1: "))
while numero <= 1:
    numero = int(input(str(numero) + " no es mayor que 1. Inténtelo de nuevo: "))
copia = numero

print("Descomposición en factores primos: ", end="")
for i in range(2, numero + 1):
    while copia % i == 0:
        copia = copia // i
        print(i, end=" ")

print()
print("Programa terminado")

Una solución más complicada, pero mucho más rápida, sería la siguiente:

numero = int(input("Escriba un número entero mayor que 1: "))
while numero <= 1:
    numero = int(input(str(numero) + " no es mayor que 1. Inténtelo de nuevo: "))
copia = numero

print("Descomposición en factores primos: ", end="")
i = 2
while copia > i:
    while copia % i == 0:
        copia = copia // i
        print(i, end=" ")
    i += 1
print(copia)

print()
print("Programa terminado")