약수란 어떤 수를 나누었을 때 나머지가 0인 수를 말하며, 배수 관계에 서로 반대되는 개념이다. 약수는 보통 정수에 대해 정의되지만, 일반화하여 정역에 대해 정의하기도 한다.
import java.util.ArrayList;
import javax.swing.JOptionPane;
public class Divisor {
private int input = 1;
private ArrayList<Integer> divisor = null;
public Divisor() {
divisor = new ArrayList<Integer>();
getInput();
}
public void getInput() {
this.input = Integer.parseInt( JOptionPane.showInputDialog("약수를 구할 정수 입력 :") );
}
public ArrayList<Integer> getDivisor() {
for (int i = 1 ; i <= this.input ; i++ ) {
if ( input % i == 0 ) {
divisor.add(i);
}
}
return divisor;
}
public void showDivisor() {
StringBuffer sb = new StringBuffer("약수 : \n");
int size = this.divisor.size();
for( int i = 0 ; i < size ; i++ ) {
sb.append( this.divisor.get(i) + " ");
if ( ( i % 9 == 0)&&(i!=0) ) {
sb.append("\n");
}
}
JOptionPane.showMessageDialog(null, sb);
}
}
[예제로 실행가능한 jar 파일]
'정보 처리 > 알고리즘' 카테고리의 다른 글
키값이 두개이고 값이 하나인 데이터를 정렬해야 한다면? (0) | 2011.01.26 |
---|---|
최대 공약수(Greatest Common Divisor) 구하기 (0) | 2010.09.02 |
알고리즘과 비슷하지만 다른 최적화(Optimization)란 (0) | 2008.11.26 |
알고리즘 분석 기준과 유형 (0) | 2008.11.26 |
알고리즘(Algorithm)이란 (0) | 2008.11.26 |