Skip to content

Instantly share code, notes, and snippets.

@devbruce
Last active March 5, 2023 01:43
Show Gist options
  • Save devbruce/7c0ea692affcaff9947b0ae697cdbde7 to your computer and use it in GitHub Desktop.
Save devbruce/7c0ea692affcaff9947b0ae697cdbde7 to your computer and use it in GitHub Desktop.
Algorithm: Related to Divisors
"""
Additional Info
- 제곱수(1, 4, 9, 16, 25, 100, 121, ...)의 약수의 갯수는 항상 홀수이다.
"""
__all__ = ['get_divisors', 'get_n_divisors']
def get_divisors(num: int) -> list:
divisors = []
for i in range(1, int(num**(1/2))+1):
if num % i == 0:
pair = num // i
if i != pair:
divisors.extend([i, pair])
else:
divisors.append(i)
divisors.sort()
return divisors
def get_n_divisors(num: int) -> int:
n_divisors = 0
for i in range(1, int(num**(1/2))+1):
if num % i == 0:
n_divisors += 2
if num // i == i: # num // i == pair
n_divisors -= 1
return n_divisors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment