C++ 中的质数和斐波那契数
在本例题中,会给出一个数字 n。我们的任务是输出小于或等于 n 的所有质数和斐波那契数。
让我们通过一个示例来理解此例题
Input: n = 30 Output: 2 3 5 13
说明
小于 30 的斐波那契数:1 1 2 3 5 8 13 21。
在这些数字中,质数是 2 3 5 13。
要解决此例题,我们必须检查小于 n 的所有斐波那契数列中的数字是否是质数。
为此,我们将找出小于或等于 n 的所有质数。并检查生成的数字是否包含在斐波那契数列中。
如果一个数字在斐波那契数列中,那么它的形式为 5i2 + 4 或 5i2 - 4。
显示我们解决方案实现的程序,
示例
#include <bits/stdc++.h>
using namespace std;
bool isSquare(int n) {
int sr = sqrt(n);
return (sr * sr == n);
}
void printPrimeAndFibnacciNumbers(int n) {
bool primeNumbers[n + 1];
memset(primeNumbers, true, sizeof(primeNumbers));
for (int p = 2; p * p <= n; p++) {
if (primeNumbers[p] == true) {
for (int i = p * 2; i <= n; i += p)
primeNumbers[i] = false;
}
}
for (int i=2; i<=n; i++)
if (primeNumbers[i] && (isSquare(5*i*i+4) > 0 || isSquare(5*i*i-4) > 0))
cout<<i<<"\t";
}
int main() {
int N = 50;
cout<<"All prime Fibonacci numbers less than "<<N<<" are :\n";
printPrimeAndFibnacciNumbers(N);
return 0;
}输出
All prime Fibonacci numbers less than 50 are : 23513
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP