Python) 소수 찾기
난이도 : Level 2
유형 : 완전탐색
카테고리 : 프로그래머스
날짜 : 2022-02-22
문제 풀이
사용되어야 할 변수
1
2
3numbers # 입력받는 수
answer # 소수의 갯수
nums # 순열조합을 합쳐주기 위해 생성한 변수입력받은 문자열 numbers의
한자리 수
부터len(numbers)
의 수까지순열(permutations)
로 만들어준다.1
2for i in range(1, len(numbers)+1) : # 1부터 문자열 num의 +1까지의 수 반복
for j in permutations(numbers, i) : # 입력받은 문자열을 순열 조합으로 변경순열로 만들어 준 수를
join
연산자를 사용하여 합쳐준다. 예) (‘1’, ‘7’) -> 171
nums = int(''.join(j))
각각의 수가 소수인지 검사하여, 소수면 리스트 answer에 추가해준다.
1
2
3
4
5
6for k in range(2, nums) : # 소수 검사
if nums % k == 0 : # 나누어 떨어지면 소수 X
break
else : # 나누어 떨어지지 않으면
if nums not in answer and nums != 0 and nums != 1 : # 소수 O
answer.append(nums) # answer에 nums 추가리스트 answer의 갯수를 리턴한다.
1
return len(answer)
전체 코드
1 | from itertools import permutations |
Python) 소수 찾기