728x90
*문제 출처는 프로그래머스에 있습니다.
문제 제목: 약수의 개수와 덧셈
문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/77884
나의 풀이
#약수의 개수를 세는 함수
def count(x):
cnt = 0
for i in range(1,x//2+1):
if x % i == 0:
cnt += 1
return cnt
#약수가 짝수인지 홀수인지 정리하고 출력하는 함
def solution(left,right):
arr_cnt = []
res = []
for i in range(left,right+1):
arr_cnt.append(count(i))
res.append(i)
for i in range(len(arr_cnt)):
if arr_cnt[i] % 2 == 0:
res[i] = -1 * res[i]
return sum(res)
모범답안
def solution(left, right):
answer = 0
for i in range(left,right+1):
if int(i**0.5)==i**0.5:
answer -= i
else:
answer += i
return answer
제곱수는 약수의 개수가 홀수라는 것을 구현하셨다...
※ 알아야 할 것
- 제곱수는 약수의 개수가 홀수다
728x90
'coding test - python > Programmers' 카테고리의 다른 글
Programmers / 문자열 내 p와 y의 개수 / Python (0) | 2022.03.31 |
---|---|
Programmers / 소수찾기 / Python (0) | 2022.03.31 |
Programmers / 같은 숫자는 싫어 / Python (0) | 2022.03.30 |
Programmers / 나누어 떨어지는 숫자 배열 / Python (0) | 2022.03.29 |
Programmers / 제일 작은 수 제거하기/ Python (0) | 2022.03.29 |