|
| 1 | +# 진약수의 합 |
| 2 | + |
| 3 | +$s(n)$은 양의 정수 $n$에 대한 모든 진약수의 합을 구하는 표현식이다. 여기서, 진약수는 자기 자신인 $n$을 제외한 $n$의 모든 약수를 의미한다. |
| 4 | + |
| 5 | +$$ s(n) = \sum\_{d | n, d \neq n} {d} $$ |
| 6 | + |
| 7 | +예를 들면, $15$ 에 대한 진약수의 합은 $(1 + 3 + 5) = 9$ 이다. |
| 8 | + |
| 9 | +진약수의 합은 정수론에서 매우 유용한 성질이며, 다음을 정의하는 데 사용할 수 있다: |
| 10 | + |
| 11 | +- 소수(Prime Numbers) |
| 12 | +- 부족수(Deficient Numbers) |
| 13 | +- 과잉수(Abundant Numbers) |
| 14 | +- 완전수(Perfect Numbers) |
| 15 | +- 친화수(Amicable Numbers) |
| 16 | +- 불가촉수(Untouchable Numbers) |
| 17 | +- 진약수의 합 수열(Aliquot Sequence of a number) |
| 18 | +- 준완전수&근완전수(Quasiperfect & Almost Perfect Numbers) |
| 19 | +- 사교수(Sociable Numbers) |
| 20 | + |
| 21 | +## 진약수의 합에 관한 사실들 |
| 22 | + |
| 23 | +- 1은 진약수의 합이 0인 유일한 수 |
| 24 | +- 완전수는 진약수들의 합이 자기 자신이 되는 수 |
| 25 | +- $pq$처럼 곱셈 형태인 [_준소수_](https://en.wikipedia.org/wiki/Semiprime)에 대한 진약수의 합은 $p + q + 1$ 이다 (p와 q는 1이 아닌 서로 다른 숫자인 상황을 가정) |
| 26 | +- 진약수의 합은 세계적으로 유명한 수학자 [Paul Erdős](https://en.wikipedia.org/wiki/Paul_Erd%C5%91s)가 가장 좋아하는 조사 주제 중 하나 |
| 27 | + |
| 28 | +## 진약수의 합을 찾는 접근방식 |
| 29 | + |
| 30 | +### 1단계: _진약수 구하기_ |
| 31 | + |
| 32 | +$1$부터 $[\frac{n} 2]$까지의 모든 수를 반복하여, $n$을 나눌 수 있는지 확인하고, 분할할 수 있다면 진약수에 추가한다. |
| 33 | + |
| 34 | +$[\frac{n} 2]$와 같은 상계를 가지는 이유는 $n$이 짝수인 경우, 가능한 진약수 중 가장 큰 진약수는 $\frac{n} 2 $이며, $n$이 홀수인 경우, 가능한 진약수 중 가장 큰 진약수가 $[\frac{n} 2]$보다 작다. 따라서, 상계를 만들어 계산하는 방법이 $1$부터 $n$까지 모든 수를 반복하는 방법보다 불필요한 계산을 줄일 수 있다. |
| 35 | + |
| 36 | +### 2단계: _진약수 더하기_ |
| 37 | + |
| 38 | +이렇게 구한 합은 진약수의 합이다 |
| 39 | + |
| 40 | +## 구현 |
| 41 | + |
| 42 | +- [C#](https://github.com/TheAlgorithms/C-Sharp/blob/master/Algorithms/Numeric/AliquotSumCalculator.cs) |
| 43 | +- [Java](https://github.com/TheAlgorithms/Java/blob/master/src/main/java/com/thealgorithms/maths/AliquotSum.java) |
| 44 | +- [JavaScript](https://github.com/TheAlgorithms/JavaScript/blob/master/Maths/AliquotSum.js) |
| 45 | +- [Python](https://github.com/TheAlgorithms/Python/blob/master/maths/aliquot_sum.py) |
| 46 | +- [Ruby](https://github.com/TheAlgorithms/Ruby/blob/master/maths/aliquot_sum.rb) |
| 47 | + |
| 48 | +## 출처 |
| 49 | + |
| 50 | +- [위키피디아 "진약수의 합" 항목](https://ko.wikipedia.org/wiki/%EC%A7%84%EC%95%BD%EC%88%98%EC%9D%98_%ED%95%A9) |
| 51 | +- [Uncyclopedia "Aliquot sum" 항목](https://en.wikipedia.org/wiki/Aliquot_sum) |
| 52 | +- [GeeksForGeeks](https://www.geeksforgeeks.org/aliquot-sum/) |
0 commit comments