-
프로그래머스 - 약수의 개수와 덧셈알고리즘 2022. 7. 24.반응형
내 풀이
public class P_40 { public static int solution(int left, int right) { int answer = 0; for(int i=left; i<=right; i++) { // 13 ~ 17 int cnt = 0; // 약수의 개수 for(int j=1; j<=i; j++) { if(i % j == 0) { cnt++; } } if(cnt % 2 == 0) { // 약수의 개수가 짝수라면 answer += i; } else { answer -= i; } } return answer; } public static void main(String[] args) { // 약수의 개수와 덧셈 int left = 13; int right = 17; System.out.println(solution(left, right)); } }
반복문 2개를 중첩하여 풀었다.
left, right의 사이를 돌아야하는 전체 틀의 반목문과
그 사이에서 약수의 개수를 구해서 비교하는 반복문을 중첩 했다.
다른 사람 풀이
class Solution { public int solution(int left, int right) { int answer = 0; for (int i=left;i<=right;i++) { //제곱수인 경우 약수의 개수가 홀수 if (i % Math.sqrt(i) == 0) { answer -= i; } //제곱수가 아닌 경우 약수의 개수가 짝수 else { answer += i; } } return answer; } }
수학적 공식을 사용하여 풀이한 모습.
약수의 개수가 홀수인 수를 n이라고 했을때
n % 루트n(제곱근) 은 0이 나온다는 공식.
반응형'알고리즘' 카테고리의 다른 글
프로그래머스 - 체육복 (0) 2022.08.19 프로그래머스 - 실패율 (0) 2022.08.04 프로그래머스 - 3진법 뒤집기 (0) 2022.07.22 프로그래머스 - 예산 (0) 2022.07.21 프로그래머스 - 두 개 뽑아서 더하기 (0) 2022.07.11