Пароль 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')