_won_
wonprogrammer
_won_
전체 방문자
오늘
어제
  • 분류 전체보기
    • woncoding
      • TIL
      • WIL
    • source Code
      • Python
      • Programmers
      • BAEKJOON

블로그 메뉴

  • 방명록

티스토리

Github · Wonprogrammer
hELLO · Designed By 정상우.
_won_

wonprogrammer

woncoding/TIL

TIL | 11.15.화 [소수 / 조합]

2022. 11. 16. 00:43

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
    'woncoding/TIL' 카테고리의 다른 글
    • TIL | 11.17.목 [Algorithm]
    • TIL | 11.16.수 [Docker]
    • TIL | 11.14.월 [DRF ↔️ JS CRUD ]
    • TIL | 11.11.금 [DRF ↔️ JS CRUD ]
    _won_
    _won_
    Coding Practice blog

    티스토리툴바