কম্পিউটার টিউটোরিয়াল

C++-এ প্রাইম নম্বর ও ফিবোনাচ্চি সংখ্যা


এই সমস্যায় একটি সংখ্যা n দেওয়া আছে। n-এর চেয়ে ছোট বা সমান যেসব সংখ্যা প্রাইম এবং ফিবোনাচ্চি উভয়ই, সেগুলো প্রিন্ট করতে হবে।

উদাহরণ:

ইনপুট: n = 30 আউটপুট: 2 3 5 13

ব্যাখ্যা: 30-এর চেয়ে ছোট ফিবোনাচ্চি সংখ্যাগুলো: 1 1 2 3 5 8 13 21। এদের মধ্যে প্রাইম: 2 3 5 13।

সমাধান: n-এর চেয়ে ছোট বা সমান সকল প্রাইম নম্বর বের করে চেক করব সেগুলো ফিবোনাচ্চি সিরিজে আছে কিনা। একটি সংখ্যা ফিবোনাচ্চি সিরিজে থাকলে তা 5i² + 4 বা 5i² - 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 : 2 3 5 13

  1. C++-তে অ্যারেতে থাকা সব প্রাইম নম্বরের গুণফল বের করা

  2. ফিবোনাচ্চি সংখ্যাগুলোর বর্গের যোগফল C++-এ

  3. C++-এ অল্টারনেট ফিবোনাচ্চি নম্বর (বিকল্প ফিবোনাচ্চি সিরিজ)

  4. C++-এ সিঙ্গলি লিংকড লিস্ট-এ ন্যূনতম এবং সর্বোচ্চ প্রাইম নম্বর বের করা