Skip to content

문제 13 · 실습 — 2·4의 배수 판별 오류 수정

수정본을 여러 값(8, 6, 3)에 대해 실행해, 홀수 3이 올바르게 걸러지는지 확인합니다.

cpp
#include <iostream>
using namespace std;

void check(int num) {
    cout << num << " -> ";
    if (num % 4 == 0)
        cout << "입력 정수는 4의 배수입니다.";
    else if (num % 2 == 0)                 // 오류 수정: 2의 배수 여부 별도 검사
        cout << "입력 정수는 2의 배수입니다.";
    else
        cout << "입력 정수는 2의 배수도 4의 배수도 아닙니다.";
    cout << '\n';
}

int main() {
    check(8);   // 4의 배수
    check(6);   // 2의 배수(4의 배수 아님)
    check(3);   // 홀수
    return 0;
}

출력은 다음과 같습니다. 원본 코드였다면 3도 "2의 배수입니다"로 잘못 출력됩니다.

8 -> 입력 정수는 4의 배수입니다.
6 -> 입력 정수는 2의 배수입니다.
3 -> 입력 정수는 2의 배수도 4의 배수도 아닙니다.

👉 문제 13으로 돌아가기

PDF