C 编程中的超级素数
超级素数是一种在所有素数序列中占据素数位置的数。也被称为高阶素数,这些数在素数序列中占据的位置等于素数。一些超级素数有 3、5、11、17…
例如,让我们找出小于 13 的所有超级素数 -
输入
13
输出
3, 5, 11.
说明 − 要找到小于 13 的超级素数,我们将找出所有小于 13 的素数。因此,显示所有小于 13 的素数为 2、3、5、7、11、13。现在,2 是一个素数,因此我们将把位置 s 的素数视为超级素数。这意味着三是一个素数。类似地,位于位置 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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP