Notice
Recent Posts
Recent Comments
Link
Development
[프로그래머스] 약수의 개수와 덧셈 본문
반응형
내 코드
def isPrime(num):
a = []
for i in range(1,num+1):
if num%i==0:
a.append(i)
return a
def solution(left, right):
answer = 0
for i in range(left,right+1):
if len(isPrime(i))!=0:
answer+= i if len(isPrime(i))%2==0 else -i
return answer
isPrime은 약수의 list를 return해주는 함수이다.
left와 right를 for문으로 돌려 약수 list가 비어있지 않을때 길이가 짝수면 더해주고 홀수면 빼주었다.
다른사람 코드
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
제곱수는 약수의 개수가 홀수이다..!! 생각도 못했다..
0.5를 제곱하는 것이 루트를 사용한것과 같으므로 루트i가 int형으로 딱 떨어지면 제곱수이다. 제곱수면 약수의 개수가 홀수이기 때문에 -를 해준다.
짝수이면 +를 해준다.
반응형
'코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2021.08.04 |
---|---|
[프로그래머스] 신규 아이디 추천 (0) | 2021.08.04 |
[프로그래머스] 소수 만들기 (0) | 2021.08.04 |
[프로그래머스] 숫자 문자열과 영단어 (0) | 2021.08.04 |
[프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2021.08.04 |
Comments