python - 약수
기본적인 풀이 방식 ( 자기 자신을 나누었을때 0)
import math,time
def baseDivi(num = 987654321):
start = time.time()
result = []
for i in range(1,num//2+1):
if num % i == 0:
result.append(i)
end = time.time()
print(f'Time : {end-start :.5f}')
print(result)
Math 함수를 활용해서 속도를 개선
def sqltDivi(num = 987654321):
result = []
start = time.time()
for i in range(1,int(math.sqrt(num))+1):
if(num % i == 0):
result.append(i)
if( num / i != i):
result.append(int(num / i))
result.sort()
end = time.time()
print(f'Time : {end-start :.5f}')
print(result)
결과

'수학' 카테고리의 다른 글
| 수학 - 순열( Permutation) JAVA (Visited, swap) (0) | 2023.02.07 |
|---|---|
| 수학- 팩토리얼 , 조합 ,순열 (Java 기본 코드) (0) | 2023.02.07 |
| 수학- 약수 , 최대공약수 , 최소공배수 (JAVA) (0) | 2023.02.07 |
| 수학-경우의 수 (Python) (0) | 2023.02.07 |