JuSeok

3036번

문제

  • N개의 링 중 첫 번째 링을 한 바퀴 돌리면, 나머지 링은 몇 바퀴 돌아가는지를 기약분수로 출력하는 문제
문제 해결 순서
  1. 맨 처음 한 바퀴 도는 링을 t에 입력 받음
  2. N-1만큼 반복문을 돌며 조건을 검사
  3. 만약 t % a == 0이면 약분이 필요없음
  4. 만약 t % a != 0이라면 gcd()함수를 통해 최소공배수를 구함
  5. 최소공배수로 분자 분모를 나눠 기약분수를 만듦
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);
  }
}

Tags