[백준] 1990 : 소수앤팰린드롬
수학
a 이상 b 이하의 수를 반복문을 사용해 돌면서
문자열과 뒤집은 문자열이 같고 , 소수이면 출력했다. 그런데 이 방법을 이용하면 시간초과가 난다, 여기서 하나 더 추가해야 할 것은
문자열의 길이가 짝수이면 11 말고는 모두 소수가 될 수 없다 .
그래서 이 조건을 추가해주면 된다
import sys
import math
input= sys.stdin.readline
a, b = map(int, input().split())
# 소수찾기
def find_prime(x):
if x == 0 or x == 1:
return False
for i in range(2, int(math.sqrt(x))+1):
if x % i == 0:
return False
return True
for i in range(a, b+1):
# 11은 소수가 맞음
if i == 11:
print(i)
# 길이가 홀수고 뒤집은 문자열과 같다. 소수이면 출력
else:
if len(str(i)) % 2 != 0 and str(i) == str(i)[::-1] :
if find_prime(i):
print(i)
# 맨 마지막줄에는 -1 출력
print(-1)
Author And Source
이 문제에 관하여([백준] 1990 : 소수앤팰린드롬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jinii/백준-1990-소수앤팰린드롬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)