Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 숫자가 29로 나누어 떨어지는지 확인하는 방법

주어진 숫자가 29로 나누어 떨어지는지 확인하는 것은 아주 간단한 문제입니다. 나머지 연산자(%)를 사용하면 숫자를 29로 나눈 나머지가 0인지 검사하여 손쉽게 판별할 수 있습니다.

나머지가 0이면 해당 숫자는 29의 배수이고, 0이 아니면 29로 나누어 떨어지지 않는 숫자입니다.

예제

입력

29
254

출력

1
0

29는 29로 정확히 나누어 떨어지므로 1(참)이 출력되고, 254는 29로 나누면 나머지가 남으므로 0(거짓)이 출력됩니다.

알고리즘

  1. 검사할 숫자 n을 입력받습니다.
  2. n을 29로 나눈 나머지(n % 29)를 계산합니다.
  3. 나머지가 0이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

C++ 구현

다음은 위 알고리즘을 C++로 구현한 코드입니다.

#include <bits/stdc++.h>
using namespace std;
bool isDivisibleBy29(long long n) {
    return n % 29 == 0;
}
int main() {
    cout << isDivisibleBy29(29) << endl;
    cout << isDivisibleBy29(234567876543) << endl;
    cout << isDivisibleBy29(234567657329) << endl;
    return 0;
}

매개변수를 long long

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

1
1
0

29와 234567876543은 29로 나누어 떨어지므로 1이 출력되고, 234567657329는 나누어 떨어지지 않으므로 0이 출력됩니다.

마무리

이처럼 나머지 연산자(%) 하나만 활용하면 어떤 숫자든 특정 수로 나누어 떨어지는지 O(1) 시간 복잡도로 빠르게 판별할 수 있습니다. 이 방법은 29뿐만 아니라 임의의 수에 대해서도 동일하게 적용할 수 있습니다.