3036번
문제
- N개의 링 중 첫 번째 링을 한 바퀴 돌리면, 나머지 링은 몇 바퀴 돌아가는지를 기약분수로 출력하는 문제
문제 해결 순서
- 맨 처음 한 바퀴 도는 링을 t에 입력 받음
- N-1만큼 반복문을 돌며 조건을 검사
- 만약
t % a == 0이면 약분이 필요없음 - 만약
t % a != 0이라면 gcd()함수를 통해 최소공배수를 구함 - 최소공배수로 분자 분모를 나눠 기약분수를 만듦
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int t = scan.nextInt();
for(int i=0; i<n-1; i++){
int a = scan.nextInt();
if(t % a == 0){
System.out.print(t / a + "/" + "1\n");
}
else{
int temp = gcd(t, a);
System.out.print(t / temp + "/" + a / temp + "\n");
}
}
}
static int gcd(int a,int b){
if(a % b == 0)
return b;
return gcd(b,a%b);
}
}