728x90
#3671 산업스파이의 편지
import sys
import math
from itertools import permutations
from itertools import combinations
N = int(input())
A = []
def f(n):
if n == 0:
return False
elif n == 1:
return False
else:
for i in range (2,int(math.sqrt(n))+1):
if n % i == 0:
return False
else:
continue
return True
for i in range (0,N):
a = input()
A.append(a)
for i in range (0,N):
prime = []
for j in range (1,len(A[i])+1):
num_list = list(A[i])
for num in permutations(num_list,j):
s = "".join(t for t in num)
s = int(s)
if f(s) == True:
prime.append(s)
else:
continue
prime = list(set(prime))
m = len(prime)
print(m)
Permutations을 잘 쓰면 되는 상황이고,
Permutations을 통해 찾아낸 숫자에 대해 소수판정을 해주는 방침으로 풀 수 있습니다.
파이썬 기준 2506ms가 나온 것으로 보아 정말 아슬아슬하게 푼듯한 느낌이네요.
'코딩' 카테고리의 다른 글
[BOJ] 백준 10164 격자상의 경로 Python (0) | 2023.10.28 |
---|---|
[BOJ] 백준 3130번 붙인드롬 Python (0) | 2023.10.28 |
[BOJ] 백준 2436 공약수 Python (0) | 2023.10.28 |
[BOJ] 백준 10422 괄호 Python (1) | 2023.10.28 |
[BOJ] 백준 28427 Tricknology Python (1) | 2023.10.28 |