-
[프로그래머스 1단계 - JAVA] 약수의 합JAVA 2022. 9. 16. 10:58728x90반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
풀이
class Solution { public int solution(int n) { int answer = 0; for(int i = 1; i <= Math.sqrt(n); i++){ if(n % i == 0){ answer = answer + i; int check = n/i; if( i != check){ answer = answer + check; } } } return answer; } }
약수를 효율적으로 구하는 방법
- 정수 10의 약수를 구해보자
- 방법 1. 정수 1~10까지의 수로 10을 나눠서 나머지가 0인지 알아본다.
- 결과 : 1, 2, 5, 10
- 실행 횟수 : 10번
- 방법 2. 제곱근으로 나눠서 나머지가 0인지 알아본다.
- 실행 1. 정수 1부터 10의 제곱근(3.16...)의 수로 우선 10을 나눠서 나머지가 0인지 알아본다.
- 첫번째 결과 : 1, 2
- 실행 2. 첫번째 결과로 10을 나눈다. (이 경우 나머지는 무조건 0이다.)
- 두번째 결과 : 10, 5
- 첫번째 결과와 두번째 결과를 합친 후 중복되는 값을 제거하면 모든 약수가 나온다.
- 실행횟수 : 4번
- 실행 1. 정수 1부터 10의 제곱근(3.16...)의 수로 우선 10을 나눠서 나머지가 0인지 알아본다.
- 방법 1. 정수 1~10까지의 수로 10을 나눠서 나머지가 0인지 알아본다.
728x90반응형'JAVA' 카테고리의 다른 글
[프로그래머스 1단계 - JAVA] 정수 제곱근 판별 (0) 2022.09.16 [프로그래머스 1단계 - JAVA] 평균 구하기 (0) 2022.09.16 [프로그래머스 1단계 - JAVA] 자릿수 더하기 (0) 2022.09.16 [프로그래머스 1단계 - JAVA] 짝수와 홀수 (0) 2022.09.16 [Java] 변수, 연산자, 조건문, 반복문, 배열, 객체지향, 예외처리 (0) 2022.09.13 - 정수 10의 약수를 구해보자