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

与えられた数nC++よりも小さい最も近い素数


数nが与えられているので、n未満の最も近い素数を見つける必要があります。 n-1からチェックを始めると、簡単に番号を見つけることができます。いくつかの例を見てみましょう。

入力

10

出力

7

アルゴリズム

  • 番号nを初期化します。
  • n-1から1まで繰り返すループを作成します
    • 最初に見つけた素数を返します
  • 指定されたn未満の素数が見つからなかった場合は-1を返します

実装

以下は、C++での上記のアルゴリズムの実装です

#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n) {
   if (n == 2) {
      return true;
   }
   for (int i = 2; i <= ceil(sqrt(n)); i++) {
      if (n % i == 0) {
         return false;
      }
   }
   return true;
}
int getNearestPrimeNumber(int n) {
   for (int i = n - 1; i > 1; i--) {
      if (isPrime(i)) {
         return i;
      }
   }
   return -1;
}
int main() {
   int n = 20;
   cout << getNearestPrimeNumber(n) << endl;
   return 0;
}

出力

上記のコードを実行すると、次の結果が得られます。

19

  1. 指定された番号がC++でPronicであるかどうかを確認します

    ここでは、番号が方形数であるかどうかを確認する方法を説明します。長方形を形成するように配置できる数は、方形数と呼ばれます。最初のいくつかの方形数は、0、2、6、12、20、30、42、56、72、90、110、132、156、182、210、240、272、306、342です。 2つの連続する整数。したがって、方形数n =x *(x + 1)。 ここでは、いくつかの方形数を確認して生成します。 例 #include <iostream> #include <cmath> using namespace std; bool isPronicNumber(int num)

  2. 数値がC++でフルプライムであるかどうかを確認します

    ここでは、数値が完全素数であるかどうかを確認する方法を説明します。数が素数であり、そのすべての桁も素数である場合、その数は完全な素数であると言われます。数が37であるとすると、これは完全な素数です。しかし、9は素数ではないため、97は完全な素数ではありません。 効率的なアプローチの1つはそれです。まず、素数ではない数字が存在するかどうかを確認する必要があります。数字は0から9でなければなりません。その範囲では、2、3、5、および7が素数であり、その他は素数ではありません。すべてが素数の場合は、その数が素数であるかどうかを確認します。 例 #include <iostream> u