python
- 소수 관련 개념 정리
[소수]
소수란? 1과 자기자신만을 약수로 가지는 자연수 N
- + 추가로, 소수는 1부터 100까지의 수 가운데 총 25개 이다
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
[python에서의 소수 활용]
- 자연수 N이 소수인지 아닌지 비교할때
- 한 번 소수의 특징을 다시 생각해보자. 주어진 자연수 N이 소수이기 위한 필요충분 조건은 N이 N의 제곱근보다 크지 않은 어떤 소수로도 나눠지지 않는다. 수가 수를 나누면 몫이 발생하게 되는데 몫과 나누는 수, 둘 중 하나는 반드시 N의 제곱근 이하이기 때문이다. 👉 이를 이용해서 i * i ≤ n 일 때까지만 비교하면 된다.
- 어떤 값이 소수인지 여부를 판단하는 간단한 함수
# 1
def is_prime_number(num):
if num==0 or num==1:
return False
else:
for n in range(2, (num//2)+1):
if num % n == 0:
return False
return True
# 2
def is_prime_number(num):
if num==0 or num==1:
return False
else:
for n in range(2, num-1):
if num % n == 0:
return False
return True
- 원소들의 조합
[리스트에 있는 값들의 모든 조합 구하기]
- from itertools import product
- 두개 이상의 리스트에서 모든 조합을 계산해야 한다면, product를 사용
# import 필수!!
from itertools import product
items = [['a', 'b', 'c,'], ['1', '2', '3', '4'], ['!', '@', '#']]
random_items = list(product(*items))
# [('a', '1', '!'), ('a', '1', '@'), ('a', '1', '#'), ('a', '2', '!'), ('a', '2', '@'), ('a', '2', '#'), ('a', '3', '!'), ('a', '3', '@'), ('a', '3', '#'), ('a', '4', '!'), ('a', '4', '@'), ('a', '4', '#'), ('b', '1', '!'), ('b', '1', '@'), ('b', '1', '#'), ('b', '2', '!'), ('b', '2', '@'), ('b', '2', '#'), ('b', '3', '!'), ('b', '3', '@'), ('b', '3', '#'), ('b', '4', '!'), ('b', '4', '@'), ('b', '4', '#'), ('c,', '1', '!'), ('c,', '1', '@'), ('c,', '1', '#'), ('c,', '2', '!'), ('c,', '2', '@'), ('c,', '2', '#'), ('c,', '3', '!'), ('c,', '3', '@'), ('c,', '3', '#'), ('c,', '4', '!'), ('c,', '4', '@'), ('c,', '4', '#')]
- from itertools import permutations or combinations
- 하나의 리스트에서 모든 조합을 계산을 해야 한다면, permutations, combinations을 사용
from itertools import combinations
nums = [1, 5, 8, 9, 6]
random_nums = list(combinations(nums, 3)) # nums에서 3개씩 뽑아 새로운 조합을 만들어
# [(1, 5, 8), (1, 5, 9), (1, 5, 6), (1, 8, 9), (1, 8, 6), (1, 9, 6), (5, 8, 9), (5, 8, 6), (5, 9, 6), (8, 9, 6)]'woncoding > TIL' 카테고리의 다른 글
| TIL | 11.17.목 [Algorithm] (0) | 2022.11.18 |
|---|---|
| TIL | 11.16.수 [Docker] (0) | 2022.11.18 |
| TIL | 11.14.월 [DRF ↔️ JS CRUD ] (0) | 2022.11.14 |
| TIL | 11.11.금 [DRF ↔️ JS CRUD ] (0) | 2022.11.14 |
| TIL | 11.10.목 [Algorithm] (1) | 2022.11.10 |