Пароль BEEGEEK банка

BEEGEEK наконец открыл свой банк в котором используются специальные банкоматы с необычным паролем. Пароль имеет вид a:b:c, где a, b и c – натуральные числа. Поскольку основатель BEEGEEK фанатеет от математики, то он решил:
число a – должно быть палиндромом;
число b – должно быть простым;
число c – должны быть четным.

Что-то я совсем намудрил с кодом...

a=input().split(':')
b=False
c=False
d=False
for i in range(2):
    if len(a)>3:
        print('False')
        break
    else:
        l=a[0]
        if l[0] == l[-1]:
            b=True
        m=a[1]
        k=0
        for i in range(1,int(m)+1):
            if int(m)%i==0:
                k+=1
        if k==2:
            c=True
        s=a[2]
        if int(s)%2==0:
            d=True
        if b==True and c==True and d==True:
            print('True')
        else:
            print('False')

Направьте, пожалуйста, в правильном направлении


Ответы (1 шт):

Автор решения: n1tr0xs

Как вариант:

def is_palindrome(n:int)->bool:
    return str(n) == str(n)[::-1]

def is_prime(n:int)->bool:
    if n in (0, 1):
        return False
    if n%2 == 0:
        return False
    for i in range(3, round(n**(1/2)+1), 2):
        if n%i == 0:
            return False
    return True

def is_even(n:int)->bool:
    return n%2 == 0


a, b, c = map(int, input('Enter pass: ').split(':'))
if is_palindrome(a) and is_prime(b) and is_even(c):
    print('Access granted.')
else:
    print('Access denied')
→ Ссылка