Una contraseña es valida si cumple con lo siguiente:

a) Debe tener un largo de al menos 8 caracteres b) Al menos uno debe ser numerico c) Debe contener exactamente un caracter que no sea letra ni numero. Cree un programa que solicite la contraseña e imprima si esta es valida.

In [1]:
passwd = input("Ingrese su contraseña: ")


Ingrese su contraseña: abcd123,

In [7]:
if len(passwd) < 8:
    print("Contraseña no valida, faltan caracteres")
else:
    cantnum = 0
    cantsimb = 0
    for i in passwd:
        if i.isdigit():
            cantnum += 1
        elif not i.isalpha():
            cantsimb += 1
    if cantsimb != 1:
        print("Contraseña no valida, debe tener solo un caracter no letra ni numero")
    elif cantnum == 0:
        print("Contraseña no valida, no tiene numeros")
    else:
        print("Contraseña valida!!!")


Contraseña valida!!!

In [6]:
# aqui probamos primero para conocer las funciones con is.
for i in passwd:
    print(i, i.isdigit(), i.isalpha())


a False True
b False True
c False True
d False True
1 True False
2 True False
3 True False
, False False

Imprima todos los numeros primos positivos menores que n, solicite el n.


In [8]:
n = int(input("Ingrese el n: "))


Ingrese el n: 20

In [17]:
#ojo... podriamos saltar de a 2, desde el 3.
for i in range(2,n):
    cantdiv = 0
    for j in range(2,int(i**0.5)+1):
        if i%j == 0:
            cantdiv += 1
    if cantdiv == 0:
        print(i, "es primo")


2 es primo
3 es primo
5 es primo
7 es primo
11 es primo
13 es primo
17 es primo
19 es primo

Solicite n y k y calcule $\binom{n}{k}$

*** Realice la menor cantidad de calculos posibles

In [18]:
n = int(input("Ingrese el n: "))


Ingrese el n: 10

In [19]:
k = int(input("Ingrese el k: "))


Ingrese el k: 4

In [21]:
if n < 0 or k < 0:
    print("No se puede calcular, hay un elemento negativo")
elif n < k:
    print("No se puede calcular, n debe ser mayor o igual a k")
else:
    menor = k
    if (n-k) < menor:
        menor = (n-k)
    resultado = 1
    for i in range(menor):
        resultado *= (n-i)/(i+1)
    print("El resultado es =", resultado)


El resultado es = 210.0

Se define como numero perfecto, aquél natural positivo en que la suma de sus divisores, no incluido si mismo, es el mismo número.

Solicite un n e imprima los perfectos menores que n

In [23]:
# obviaremos chequeo que sea positivo
n = int(input("Ingrese su n: "))


Ingrese su n: 10000

In [25]:
for i in range(1, n+1):
    suma = 0
    for j in range(1,i):
        if i%j == 0:
            suma += j
    if suma == i:
        print(i, "es perfecto")


6 es perfecto
28 es perfecto
496 es perfecto
8128 es perfecto

In [28]:
for i in range(1, 496):
    if 496%i == 0:
        print(i)


1
2
4
8
16
31
62
124
248