C语言编程中的超级Prime
超质数是在所有质数序列中占质数位置的数字。也称为高阶素数,这些数在素数序列中的位置占等位,后者等于素数。一些超级素数是3,5,11,17…
例如,让我们找出所有小于13的超质数-
输入项
13
输出结果
3, 5, 11.
解释-要查找小于13的超级素数,我们将找到所有小于13的素数。因此,显示所有小于13的素数分别为2,3,5,7,11,13。现在,2是素数,因此我们将位置处的素数视为超级素数。这意味着三是质数。同样,位置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
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短