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

Cプログラミングのスーパー素数


スーパープライム番号は、すべての素数のシーケンスで素数の位置を占める番号です。高次素数とも呼ばれます。これらの数は、素数と等しい素数のシーケンスの位置を占めます。いくつかの超素数は3,5,11,17…

です

たとえば、13未満のすべての超素数を見つけましょう-

入力

13

出力

3, 5, 11.

説明 − 13未満の超素数を見つけるには、13未満のすべての素数を見つけます。したがって、13未満のすべての素数が2、3、5、7、11、13であることを示します。ここで、2は素数なので、位置toの素数をスーパー素数と見なします。これは、3が素数であることを意味します。同様に、位置3の5と位置5の11は超素数です。

指定された素数よりも小さいすべての素数を見つけるには、最初にその数よりも小さいすべての素数を見つけてから、配列に格納します。この配列からは、位置がいずれかの素数と等しい数のみが出力されます。たとえば、2番目、3番目、5番目、7番目、11番目、13番目の素数…。考慮されます。

#include<iostream>
using namespace std;
bool SieveOfEratosthenes(int n, bool isPrime[]) {
   isPrime[0] = isPrime[1] = false;
   for (int i=2; i<=n; i++)
      isPrime[i] = true;
   for (int p=2; p*p<=n; p++) {
      if (isPrime[p] == true) {
         for (int i=p*2; i<=n; i += p)
            isPrime[i] = false;
      }
   }
}
void superPrimes(int n) {
   bool isPrime[n+1];
   SieveOfEratosthenes(n, isPrime);
   int primes[n+1], j = 0;
   for (int p=2; p<=n; p++)
      if (isPrime[p])
   primes[j++] = p;
   for (int k=0; k<j; k++)
      if (isPrime[k+1])
   cout << primes[k] << " ";
}
int main() {
   int n = 343;
   cout << "Super-Primes less than "<< n << " are :"<<endl;
   superPrimes(n);
   return 0;
}

出力

Super-Primes less than 343 are :
3 5 11 17 31 41 59 67 83 109 127 157 179 191 211 241 277 283 331

  1. Pythonでプライムするかどうか

    素数は、暗号化などの多くのアプリケーションで中心的な役割を果たします。そのため、さまざまなアプリケーションでPythonプログラムを使用して素数をチェックする必要があります。素数とは、それ自体以外の要素を持たない数のことです。以下に、与えられた数が素数であるかどうかを調べることができるプログラムを示します。 アプローチ 数が素数であるかどうかを判断するために、次のアプローチを取ります。 最初のチェックはポジティブかどうか。正の数だけが素数になることができるので。 数値を、指定された数値より2から1少ない数値の範囲内のすべての数値で除算します。 この範囲のいずれかの数値の余り

  2. 素数をチェックするPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数が与えられているので、与えられた数が素数であるかどうかを確認する必要があります。 1より大きい特定の正の数で、1以外の要素はなく、その数自体は素数と呼ばれます。 2、3、5、7などは他の要素がないため素数です。 以下のこのプログラムでは、素数または非素数の性質について番号がチェックされます。 1以下の数は素数とは言えません。したがって、数値が1より大きい場合にのみ反復します。 ここで、その数が2から(num-1 // 2)の範囲の任意の数で正確に割り切れるかどうかを確認します。指定された範囲内に何ら