컬렌 수(Cullen Number)란?
이 튜토리얼에서는 C++을 사용하여 컬렌 수(Cullen Number)를 구하는 프로그램을 작성하는 방법을 알아보겠습니다.
컬렌 수는 아일랜드 출신 수학자 제임스 컬렌(James Cullen)의 이름에서 유래한 특수한 형태의 수열입니다. 임의의 정수 n이 주어졌을 때, 해당 위치의 컬렌 수는 다음 공식으로 계산할 수 있습니다.
2n × n + 1
계산 예시
예를 들어 n = 2라면, 컬렌 수는 22 × 2 + 1 = 9가 됩니다.
C++ 코드 구현
다음은 비트 시프트 연산을 활용해 n번째 컬렌 수를 구하는 C++ 코드입니다.
#include <bits/stdc++.h>
using namespace std;
// n번째 컬렌 수를 구하는 함수
unsigned get_cullen(unsigned n){
return (1 << n) * n + 1;
}
int main(){
int n = 2;
cout << get_cullen(n);
return 0;
}코드 설명
(1 << n): 비트 시프트 연산자를 이용해 2n 값을 빠르게 계산합니다.pow()함수를 호출하는 것보다 성능 면에서 더 효율적입니다.* n + 1: 앞서 구한 2n에 n을 곱한 뒤 1을 더해 최종적인 컬렌 수를 반환합니다.unsigned타입을 사용하므로 음수가 아닌 큰 범위의 n 값도 안전하게 처리할 수 있습니다.
실행 결과
9
위 코드에서 n = 2를 입력하면, 공식에 따라 22 × 2 + 1 = 9가 출력되는 것을 확인할 수 있습니다.