백준공부/java

[백준] 2609번 최대공약수와 최소공배수 문제! (bronze 1

gomduri43 2022. 7. 24. 18:05

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {

	public static void main(String[] args) throws IOException  {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st=new StringTokenizer(br.readLine());
		int first=Integer.parseInt(st.nextToken());
		int second=Integer.parseInt(st.nextToken());
		int great=1;		//둘의 공약수가 나올때마다 곱하면 최대공약수
		int leastMulti=0;   //공배수 구할 때 이용
		int fNum=first;     //약수구할때 이용
		int sNum=second;    //약수구할때 이용
		boolean a=true;

		int divNum=2;
		while(a) {
			if(fNum%divNum==0) {
				fNum/=divNum;
				if(sNum%divNum==0) {
					sNum/=divNum;
					great*=divNum;
				}
			}
			else if(sNum%divNum==0) {
				sNum/=divNum;
			}
			else {
				divNum++;
				if(fNum==1) {
					a=false;
				}
			}
		}
		a=true;
		while(a) {
			leastMulti+=first;
			if(leastMulti%second==0) {
				a=false;
			}			
		}
		
		bw.write(great+"\n");
		bw.write(leastMulti+"");
		bw.flush();
	}
}