일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- publishnotreadyaddress
- lvm #lv #vg #pv
- 티스토리챌린지
- bootstrap #css #CSS
- EKS
- Swap Memory
- Kafka #카프카
- 오블완
- jmap #jstack
- test #비교
- Python #pakage
- OCP
- DB #mariaDB #SQL
- CI #CD #CI/CD
- Linux #wc
- dump #jattach
- istio #k8s #kubernetes
- shell #shell script
- NameSpace #NS
- jgrp000032 #ocp #
- Grid #CSS
- EFK
- Node #POD #Container
- PODS #POD #pods #pod #파드 #재기동 #롤링재기동 #rolling
- 백준 #10430
- lenova #레노버 #노트북
- dify
- 네트워크 #NW
- function #사용자 정의 함수
- Excel #엑셀
Archives
- Today
- Total
BEOM_IT
약수구하기 본문
728x90
반응형
# 약수 1~자신 까지 1씩 증가하면서 나누어 떨어지는 경우 리스트에 추가
# 시간복잡도 O(n)
def divisor(number):
result = []
for i in range(1, int(number**(1/2))+1):
if number%i==0:
result.append(i)
return result
# 어떤 수 N의 약수는 항상 N=A∗B로 나타낼 수 있다는 점에서 착안하여, A를 구할 경우 B까지 리스트에 추가해주는 방식으로 효율 상승
# 시간 복잡도 O(n)을 O(n^1/2)
def divisor(number):
result = []
for i in range(1, int(number**(1/2))+1):
if number%i==0:
result.append(i)
if i < number//i:
result.append(number//i)
result.sort()
return result
# 이건 뭐지...?
# 제곱수의 약수는 홀수개이다...
# i**0.5는 i의 제곱근을 구하는 식
def divisor(number):
answer = 0
for i in range(number+1):
if int(i**0.5)==i**0.5:
answer -= i
else:
answer += i
return answer
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[programmers]python 12980 점프와 순간이동 (0) | 2024.05.28 |
---|---|
[programmers]python 12917 문자열 내림차순 배치 (0) | 2024.05.17 |
[programmers]python 12903 가운데 글자 가져오기 (0) | 2024.05.09 |
[programmers] python 77884 약수의 개수와 덧셈 (0) | 2024.05.09 |
[programmers] python 181875 배열에서 문자열 대소문자 변환 (0) | 2024.05.07 |