본문 바로가기

알고리즘/백준

[백준] 5086 - 배수와 약수 (JAVA/ 자바)

반응형

5086번 문제

 

1.Scanner를 이용한 방법

import java.util.Scanner;

public class Main{
public static void main(String[] args){

    Scanner sc = new Scanner(System.in);
    
    while(true){
        
        int A = sc.nextInt();
        int B = sc.nextInt();
        if(A == 0 && B == 0){
            break;
        }
        if(B % A == 0){
            System.out.println("factor");
        }else if(A % B == 0){
            System.out.println("multiple");
        }else{
            System.out.println("neither");
        }
    }
    sc.close();
    }
}

 

2. BufferedReader를 이용한 방법

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main{
public static void main(String[] args)throws IOException{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    
    while(true){
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        if(A == 0 && B == 0){
            break;
        }
        if(B % A == 0){
            System.out.println("factor");
        }else if(A % B == 0){
            System.out.println("multiple");
        }else{
            System.out.println("neither");
        }
    }
    br.close();
    }
}

A 값과 B값이 0일 때 break; 시키는 부분을 처음에 맨 끝에 뒀더니 java.lang.ArithmeticException: / by zero 오류가 발생했다. 맨 앞으로 옮겨줘서 해결했다.

반응형