C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++でカレン数を求めるプログラムの作成方法

このチュートリアルでは、カレン数(Cullen Number)を求めるC++プログラムについて解説します。

カレン数とは?

カレン数とは、次の公式で表される整数列のことです。

2n × n + 1

このプログラムでは、1つの整数 n が与えられたとき、上記の公式を使って n 番目のカレン数を計算して出力します。

例えば、n = 2 の場合、22 × 2 + 1 = 9 となるため、答えは 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 を高速に計算しています。
  • それに n を掛けて 1 を加えることで、カレン数の公式どおりの値を返します。
  • 戻り値の型には unsigned を使用し、大きな値にも対応できるようにしています。

実行結果

9

n = 2 を入力として渡すと、プログラムは正しく「9」を出力します。このように、ビットシフトを活用することで、べき乗計算を効率的に行うことができます。

  1. C++で最小公倍数(LCM)を求めるプログラム:初心者向けに2つの方法を解説

    最小公倍数(LCM: Least Common Multiple)とは、2つの整数に共通する倍数の中で最も小さい数のことです。プログラミングの基礎的なアルゴリズム学習においても頻出のテーマであり、C++を使えば簡単に求めることができます。最小公倍数とは?具体例で確認例として、15と9という2つの数を考えてみましょう。それぞれ素因数分解すると次のようになります。15 = 5 × 3 9 = 3 × 3この場合、15と9の両方を割り切れる最小の数、つまり最小公倍数は 45 となります。方法1:大きい方の数から順に増やしていく方法まず紹介するのは、最も直感的なアプローチです。2つの数のうち大きい方

  2. C++で2つの数の最大公約数(GCD)を求めるプログラム

    最大公約数(GCD)とは最大公約数(GCD: Greatest Common Divisor)とは、2つの整数をどちらも割り切る正の整数のうち、最も大きい数のことです。プログラミングの基礎的なアルゴリズム問題としてよく取り上げられるテーマであり、分数の約分や暗号処理など、さまざまな場面で活用されます。例として、45と27という2つの数を考えてみましょう。45 = 5 × 3 × 327 = 3 × 3 × 3両方の数に共通する素因数は「3 × 3」であるため、45と27の最大公約数は9となります。方法1:ユークリッドの互除法による実装2つの数の最大公約数を求める最も効率的な方法が「ユークリッド