Dãy số Fibonacci nhỏ hơn n và là số nguyên tố

146
Lập trình C++

Bài toán. Liệt kê các số Fibonacci nhỏ hơn n và là số nguyên tố

Đầu vào: Số nguyên dương n

Đầu ra: Dãy Fibonacci đồng thời là số nguyên tố 

Code tham khảo:

#include <iostream>
#include <cmath>
using namespace std;
int nguyenTo(int n) {
     if (n < 2) {
        return 0;
    }
    int i;
    int s = sqrt(n);
    for (i = 2; i <= s; i++) {
        if (n % i == 0) {
            return 0;
        }
    }
    return 1;
}
int Fibonacci(int n) {
    if (n < 0) {
        return -1;
    } else if (n == 0 || n == 1) {
        return n;
    } else {
        return Fibonacci(n - 1) + Fibonacci(n - 2);
    }
}
int main() {
    freopen("NTFI.INP","r",stdin);
    freopen("NTFI.OUT","w",stdout);
    int n, i = 0;
    cin >> n;
    while (Fibonacci(i) < n) {
        int fi = Fibonacci(i);
        if(nguyenTo(fi)) {
            cout << fi << " ";
        }
        i++;
    }
    return 0;
}