check_p, check_pnum으로 팰린드롬과 소수를 판별하는 함수를 정의한 뒤 두 함수의 return값이 모두 1일 때의 출력을 구했다
이 때 1은 팰린드롬이긴하지만 소수가 아니어서 1일 때는 2로 출력해주는 예외를 적어줘야 한다.(...)
"""
문제 바로가기 https://www.acmicpc.net/problem/1747
"""
def checkp(a:str)->int:
if a == a[::-1]:
return 1
else:
return 0
def checkpnum(a:int)->int:
cnt = 0
for i in range(1,int(a**(1/2))+1):
if a%i == 0:
cnt += 1
if cnt == 1:
return 1
else:
return 0
N = int(input())
i = N
while True:
if i == 1:
print(2)
break
if checkp(str(i)) == 1 and checkpnum(i) == 1:
print(i)
break
i += 1
def checkpnum(a:int)->int:
cnt = 0
for i in range(1,int(a**(1/2))+1):
if a%i == 0:
cnt += 1
if cnt == 1:
return 1
else:
return 0
소수임을 판단하는 함수로 제곱근을 사용할 때의 범위를 잘 파악해두면 좋다.
함수에서 a : int , -> int는 각각 입력값, 출력값의 타입을 의미하는 것으로 코드의 가독성을 높인다.