[프로그래머스] Lv1. 약수의 개수와 덧셈
접근 방법
- 약수의 개수가 홀수인 수는 어떤 수의 제곱수
- 제곱수만 찾아 빼주고 나머지는 더하기
- sqrt(i) 와 int(sqrt(i))가 같으면 제곱수
이전에 C++로 풀었던 내용
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int solution(int left, int right) {
int answer = 0;
for(int i = left; i <= right; i++){
sqrt(i) == (int)sqrt(i) ? answer -= i : answer += i;
}
return answer;
}
나의 풀이
import math
def solution(left, right):
answer = 0
for i in range(left, right+1):
if math.sqrt(i) == int(math.sqrt(i)):
answer -= i
else:
answer += i
return answer
다른 사람의 풀이
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
math의 sqrt 대신 0.5 제곱을 사용해도 됨!!
Author And Source
이 문제에 관하여([프로그래머스] Lv1. 약수의 개수와 덧셈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chaen805/프로그래머스-Lv1.-약수의-개수와-덧셈저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)