250x250
반응형
Notice
Recent Posts
Recent Comments
Link
종식당
[백준 1747] 소수&팰린드롬 본문
728x90
반응형
https://www.acmicpc.net/problem/1747
- 문제설명
먼저 숫자 N을 입력받고 N부터 1,000,000까지 숫자 중 소수이면서 팰린드롬인 수를 구해 출력하면 된다. 여기서 팰린드롬 수란 숫자를 거꾸로 뒤집었을 때 처음 숫자와 같은 수를 말한다. ex) 101, 202 - 제출코드
import math
def isPrime(x):
if x == 1:
return False
for i in range(2,int(math.sqrt(x)+1)):
if x % i == 0:
return False
return True
def isPel(x):
if str(x) == str(x)[::-1]:
return True
return False
N = int(input())
while True:
if isPrime(N) and isPel(N):
print(N)
break
N+=1
소수를 판별하는 함수 isPrime함수와 팰린드롬 수를 판별하는 함수 isPel함수를 만들었다.
소수를 판별하기 위해서는 for문을 통해 2부터 해당 수의 제곱근 + 1 한 정수까지 돌린다. 이때 아무것도 나누어 떨어지지 않으면 소수이다. 대신 1은 소수가 아니니 예외처리를 해주었다.
팰린드롬을 구하기 위해서는 해당 수를 문자로 바꾸어 뒤집었을 때 원래의 수와 갔다면 True를 반환한다.
그 후 N을 입력받고 무한 루프를 돌린다. 두 함수를 호출하고 둘 다 참일 때 출력하고 break를 통해 무한 루프를 탈출한다.
- 마무리
마지막 방학이 거의 다 끝나가지만 이제부터라도 하루에 적어도 한 문제 꼭 풀기!
728x90
반응형
'백준' 카테고리의 다른 글
[백준 3050] 나머지 (0) | 2024.09.28 |
---|---|
[백준 7562] 나이트의 이동 (0) | 2024.08.20 |
[백준 2776] 암기왕 (1) | 2024.04.02 |
[백준 1929] 소수 만들기 (0) | 2024.02.14 |
[백준 11053, 12015] 가장 긴 증가하는 부분 수열 1, 2 (1) | 2024.02.08 |