[QUIZ] 인터페이스 구현 : 약수와 약수의 합
06 Sep 2021 -
1 minute read
약수와 약수의 합 구하기
Quiz) 상속/인터페이스 약수 구하기 > 다시풀어보기 :’(
- Main Class
public class Main {
public static void main(String[] args) {
//두 정수 사이의 랜덤값 구하기
//(int)((최댓값-최솟값+1)*Math.random()+최솟값);
int rndValParam = (int)((11)*Math.random()+10);
System.out.println("생성된 랜덤 값 : " + rndValParam);
YaksuList yaksuList = new YaksuList(rndValParam);
yaksuList.mtdYaksu();
YaksuList yaksuSum = new YaksuSum(rndValParam);
yaksuSum.mtdYaksu();
}
}
- Yaksu.java(interface)
public interface Yaksu {
public abstract void mtdYaksu();
}
- YaksuList.java (Super Class)
public class YaksuList implements Yaksu{
private int rndNum;
public YaksuList(int rndNum) {
this.rndNum = rndNum;
}
public int getRndNum() {
return rndNum;
}
@Override
public void mtdYaksu() {
System.out.println("\n약수");
for (int i = 1; i <= rndNum; i++) {
if (rndNum % i == 0) {
System.out.print(i);
if (i < rndNum) {
System.out.print(", ");
}
}
}
}
}
- YaksuSum.java (Sub Class)
public class YaksuSum extends YaksuList {
public YaksuSum(int rndNum) {
super(rndNum);
}
@Override
public void mtdYaksu() {
System.out.print("\n\n약수의 합 : ");
int sum = 0;
for (int i = 1; i <= getRndNum(); i++) {
if (getRndNum() % i == 0) {
sum += i;
}
}
System.out.print(sum);
}
}
- 출력결과
생성된 랜덤 값 : 20
약수
1, 2, 4, 5, 10, 20
약수의 합 : 42
--------------------
생성된 랜덤 값 : 10
약수
1, 2, 5, 10
약수의 합 : 18