এই সমস্যায়, আমরা একটি সংখ্যা 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