C++で指定した数値がバズナンバー(Buzz Number)かどうかを判定するプログラム
本記事では、正の整数「n」が与えられたとき、その数値がバズナンバー(Buzz Number)であるかどうかを判定し、結果を出力するC++プログラムを紹介します。
バズナンバーとは?
ある数値がバズナンバーとみなされるためには、以下の2つの条件のうちどちらか一方を満たしている必要があります。
- 数値の末尾(1の位)が7であること。例:27、657 など
- 数値が7で割り切れること。例:63、49 など
入出力例
入力:
number: 49
出力:
it's a buzz number
解説: この数値は7で割り切れるため、バズナンバーです。
入力:
number: 29
出力:
it's not a buzz number
解説: この数値は7で割り切れず、末尾も7ではないため、バズナンバーではありません。
プログラムのアプローチ
- 判定対象となる数値を入力として受け取る
- その数値が「末尾が7」または「7で割り切れる」条件を満たすかチェックする
- 条件を満たしていれば「バズナンバーである」と出力する
- 条件を満たしていなければ「バズナンバーではない」と出力する
アルゴリズム
Start
Step 1→ バズナンバーかどうかを判定する関数を宣言する
bool isBuzz(int num)
return (num % 10 == 7 || num % 7 == 0)
Step 2→ main() 内での処理
int num = 67 を宣言する
IF (isBuzz(num))
"its a buzz Number\n" を出力する
End
Else
"its not a buzz Number\n" を出力する
End
Stopサンプルコード
#include <cmath>
#include <iostream>
using namespace std;
// バズナンバーかどうかを判定する関数
bool isBuzz(int num){
return (num % 10 == 7 || num % 7 == 0);
}
int main(){
int num = 67;
if (isBuzz(num))
cout << "its a buzz Number\n";
else
cout << "its not a buzz Number\n";
}実行結果
上記のコードを実行すると、次の出力が得られます。
its a buzz Number
コードのポイント
このプログラムの核となるのは isBuzz 関数です。num % 10 == 7 によって1の位が7かどうかを確認し、num % 7 == 0 によって7で割り切れるかどうかを確認しています。論理和演算子(||)を使うことで、どちらか一方の条件を満たせば true を返すシンプルな実装になっています。
-
Pythonで与えられた数値がユークリッド数(Euclid Number)かどうかを判定する方法
ユークリッド数とは? ある整数 n が与えられたとき、それがユークリッド数であるかどうかを判定することを考えます。ユークリッド数とは、次の式で表すことができる整数のことです。 n = Pn + 1 ここで Pn は「最初の n 個の素数の積」を意味します。 例として、入力が n = 211 の場合を考えてみましょう。211 は次のように表せるため、出力は True になります。 211 = (2 × 3 × 5 × 7) + 1 解決のためのアプローチ この問題は、以下の手順で解くことができます。 上限値 MAX を 10000 に設定し、空の素数リスト primes を用意します。 関数
-
Pythonでナルシスト数(アームストロング数)を判定するプログラムの作成方法
ナルシスト数とは? ナルシスト数(Narcissistic Number、別名:アームストロング数)とは、「各桁の数字を桁数乗して合計した値が、元の数そのものと一致する数」のことです。 例えば、9474 を考えてみましょう。この数は4桁なので、各桁の数字を4乗して足し合わせます。 9^4 + 4^4 + 7^4 + 4^4 = 6561 + 256 + 2401 + 256 = 9474 計算結果が元の数 9474 と一致しているため、9474 はナルシスト数であると言えます。 判定アルゴリズムの手順 この問題を解くためには、以下の手順に従います。 数値 n を文字列に変換し、各桁の数字を