유클리드 호제법을 사용한 문제풀이 두 가지 존재.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] arr = sc.nextLine().split(" ");
int num1 = Integer.parseInt(arr[0]);
int num2 = Integer.parseInt(arr[1]);
int result1 = gcd(num1, num2);
int result2 = (num1 * num2) / result1;
System.out.println(result1);
System.out.println(result2);
}
public static int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] arr = sc.nextLine().split(" ");
int num1 = Integer.parseInt(arr[0]);
int num2 = Integer.parseInt(arr[1]);
int result1 = gcd(num1, num2);
int result2 = (num1 * num2) / result1;
System.out.println(result1);
System.out.println(result2);
}
public static int gcd(int a, int b) {
if(b==0) return a;
return gcd(b, a%b);
}
}
사실 유클리드 호제법을 이 문제로 공부함으로써 풀게되었고, 포스팅해두었다. 그래서 문제푸는 어려움은 없었으나
재귀함수 사용과 반복문 사용에 과연 어떠한 결과 차이가 있을까?
에 대한 궁금증이 생겨 두 번 풀어 결과를 비교했다.
가운데 런타임에러는 내가 오타를 내서 오류가 났음..
[링크] : 깃허브