백준 2023 신기한 소수 풀이 ( 파이썬 )
2023번: 신기한 소수
수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수
www.acmicpc.net
처음에는 에라토스테네스의 체를 이용해서 시도했으나 시간초과가 났다...
m=int(input())
a = [False,False] + [True]*(10**m-1)
primes=[]
for i in range(2,10**m//2):
# if a[i]:
# primes.append(i)
for j in range(2*i, 10**m, i):
a[j] = False
def judge(num):
while len(num):
num=int(num)
if not a[num]:
return False
num=str(num)
num=num[:-1]
return True
def sol(num):
for i in range(num,num*10):
if judge(str(i)):
print(i)
return
sol(10**(m-1))
그래서 그냥 소수 판별로 하는게 좋다고 생각해 바꿈
n=int(input())
# 소수 판별
def isPrime(a):
if(a<2):
return False
for i in range(2,int(a**0.5)+1):
if(a%i==0):
return False
return True
def dfs(num):
# 목표 길이 도달 시 멈춤
if len(str(num))==n:
print(num)
else:
for i in range(10):
temp=num*10+i
if isPrime(temp):
dfs(temp)
dfs(2)
dfs(3)
dfs(5)
dfs(7)
[ baekjoon ] 트리의 지름 1967번 ( python ) (0) | 2021.05.08 |
---|---|
[ baekjoon ] 트리의 부모 찾기 11725번 ( python ) (0) | 2021.05.07 |
[ baekjoon ] 두 배열의 합 2143번 ( python ) (0) | 2021.04.27 |
[ baekjoon ] 비숍 1799번 ( python, java ) (0) | 2021.04.14 |
[ baekjoon ] 폰 호석만 ( python ) (0) | 2021.04.11 |