Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

약수의 개수와 덧셈 (Java) 본문

Code Kata

약수의 개수와 덧셈 (Java)

H.S-Backend 2024. 5. 24. 09:54

문제 설명

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ left  right ≤ 1,000

 

약수란 어떤 정수를 나누어 떨어지게 하는 다른정수.

어떤 정수로 나누었을 때 나머지가 0이되는 정수를

그 정수의 약수.

 

6의 약수는 1, 2, 3, 6이다.

나누었을때 나머지가 0이되는 정수이기때문에

 

위 문제에서

13의약수는 1, 13

14의 약수는 1, 2, 7 ,14

15의 약수는 1, 3, 5 ,15

16의 약수는 1, 2, 4, 8, 16

17의 약수는 1, 17

  1. for문을 사용하여 left와 right 사이를 순회하게 해놓고
  2. 안의 for문을 사용하여 13이 초기값으로 지정되어 if문을 돌면서 j가 1, 2, 3, 4 .... i의 나머지로 떨어지는 값을 찾아서 count가 더해진다.
  3. 13의 순회가끝나고 count는 2이다 (13의 약수는 2개이므로)
  4. 밑의 if문에서 %2로 나누어 떨어질 경우 answer에 더하고
  5. 아니라면 -가 된다.

약수란 결국에 제곱근이랑 연관있다.


다른사람의 풀이

Math.sqrt란 인풋값의 제곱근을 구하는 함수

i가 13일 경우

13% 13의 제곱근은 3.605551275463989 무한 소수 이기때문에 정확히 떨어지지 않으므로 answer += 13이 된다.

14도 마찬가지, 15도 16은 4 *4 정확히 나누어 떨어지므로 -= 16이된다.

 

 

https://github.com/Hyungs0703/Algorithms_J.S

 

GitHub - Hyungs0703/Algorithms_J.S: This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https:/

This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - Hyungs0703/Algorithms_J.S

github.com

 

반응형