
2
장
-
전환
35
수학적 개념 하나인 진약수의 합
aliquot
sum
을 사용하면 구현하는 데 도움이 된다. 진약수의 합
은 한 수의 모든 약수 중 자신을 제외한 합으로 정의된다. 즉 완전수의 조건과 비교할 때
sum
-
number
==
number
라고 하지 않고
aliquotSum
==
number
로 더 쉽게 표현할 수 있다.
2.2.1
명령형 자연수 분류
이 개념을 구현하기 위해서는 각 숫자당 여러 번의 분류를 시도해야 할 것이다. 이런 요구사항
을 만족시키는 자바 버전 해답이 [예제
2
-
10
]이다.
예제
2-10
자바를
사용한
자연수
분류기
package com
.
nealford
.
ft
.
number_classifier
;
import java
.
util
.
HashMap
;
import java
.
util
.
HashSet
;
import java
.
util
.
Map
;
import java
.
util
.
Set
;
public class ImpNumberClassifierSimple
{
private int _number
;
//
(
1
)
private Map
<
Integer
,
Integer
>
_cache
;
//
(
2
)
public ImpNumberClassifierSimple
(
int targetNumber
)
{
_number = targetNumber
;
_cache = new HashMap