Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- pcce 기출문제 10번 공원 풀이
- pcce 기출문제 10번 공원
- pccp 기출문제 풀이
- DirectX
- c++ 1991
- 렌더링 파이프
- 백준 5567
- PCCE
- 잔디 기부
- 수식 복원하기
- constant buffre
- 오블완
- boj 1991
- depth-stencil
- pcce 기출문제 9번 지폐 접기
- pcce 기출문제 10번 지폐 접기 풀이
- 코드트리 고대 문명 유적 탐사
- gemmasprint
- texture mapping
- boj 5567
- pcce 기출문제 풀이
- 프로그래밍공부
- DirectX12
- root signature
- 잔디 기부 캠페인
- 티스토리챌린지
- 고대 문명 유적 탐사
- directx 그래픽스
- python 고대 문명 유적 탐사
- c++ 5567
Archives
- Today
- Total
오구의코딩모험
[Python] 소수 찾기 본문
반응형
[코딩테스트 고득점 KIT - 완전탐색]
모든 경우의 수를 탐색하기 위해 순열을 사용하였다.
"011" 와 "11"은 같은 수 이기 때문에
중복 제거를 위해 answer을 set()로 만들어 주었다.
약수는 곱의 형태로 반복되기 때문에 제곱근+1 까지만 반복문을 실행한다.
ex) 24의 약수 = 1, 2, 3, 4, 6, 8, 12, 24 →1*24, 2*12, 3*8, 4*6, 따라서 24는 2로 나눠지면서 12로도 나눠지는 수
나누어진다면, 1과 자기 자신만이 약수로 갖는 소수가 아닌 합성수이다.
합성수가 아닌 수는 소수.
소수를 담은 리스트의 길이를 반환하면 끝.
from itertools import permutations
import math
def solution(numbers):
# 중복 제거
answer = set()
for i in range(len(numbers)):
# 순열을 통한 경우의 수 실행
for number in list(permutations(numbers,i+1)):
# 문자열 -> 정수
target = int(''.join(number))
# 2와 3도 소수
if target == 2 or target == 3:
answer.add(target)
continue
# 약수는 곱의 형태로 반복되기 때문에 제곱근+1 까지
for j in range(2, int(math.sqrt(target)+1)):
# 합성수
if target % j == 0:
break
# 소수
elif j == int(math.sqrt(target)):
answer.add(target)
return len(answer)
반응형
'프로그래밍 공부 > 프로그래머스' 카테고리의 다른 글
[MySQL] 3월에 태어난 여성 회원 목록 출력하기 (0) | 2023.01.04 |
---|---|
[MySQL] 과일로 만든 아이스크림 고르기 (0) | 2023.01.04 |
[Python] 피로도 (0) | 2023.01.03 |
[Python] 카펫 (0) | 2023.01.02 |
[Python] H-Index (0) | 2023.01.02 |
Comments