平衡素数
平衡素数是指前后的素数差相同。换句话说,它是最近的前后素数的平均值。
如果素数满足以下公式,则为平衡素数 −
Pn = (P(n-1) + P(n+1)) / 2
其中 n 是素数在有序素数集合中的索引。
有序素数集合:2, 3, 5, 7, 11, 13,…。
前几个平衡素数是 5、53、157、173,…。
在本题中,我们将得到一个数字 n,我们要找到第 n 个平衡素数。
举个例子,
Input : n = 3 Output : 157
这将生成素数并将其存储在数组中。我们将找出该素数是否是平衡素数。如果是,则增加记数值,如果记数值等于 n,则打印出来。
示例
#include<bits/stdc++.h>
#define MAX 501
using namespace std;
int balancedprimenumber(int n){
bool prime[MAX+1];
memset(prime, true, sizeof(prime));
for (int p = 2; p*p <= MAX; p++){
if (prime[p] == true)
{
for (int i = p*2; i <= MAX; i += p)
prime[i] = false;
}
}
vector<int> v;
for (int p = 3; p <= MAX; p += 2)
if (prime[p])
v.push_back(p);
int count = 0;
for (int i = 1; i < v.size(); i++){
if (v[i] == (v[i+1] + v[i - 1])/2)
count++;
if (count == n)
return v[i];
}
}
int main(){
int n = 3;
cout<<balancedprimenumber(n)<<endl;
return 0;
}输出
157
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
安卓
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP