백준공부/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();
}
}