Discover primes in vary [1, N] which additionally belongs to a Tribonacci sequence

[ad_1]

  

#embrace <bits/stdc++.h>

utilizing namespace std;

  

void sieve(vector<bool>& primes, int N)

{

    for (int i = 2; i * i <= N; i++) {

        if (primes[i] == true) {

            for (int j = i + i; j <= N; j = j + i) {

                primes[j] = false;

            }

        }

    }

}

  

vector<int> findValues(int N)

{

    

    vector<bool> primes(N + 1, true);

  

    

    primes[0] = false;

    primes[1] = false;

  

    sieve(primes, N);

  

    vector<int> tribonacci(N + 1);

    tribonacci[0] = 0;

    tribonacci[1] = 0;

    tribonacci[2] = 1;

  

    

    

  

    for (int i = 3; tribonacci[i - 1] <= N; i++) {

        tribonacci[i] = tribonacci[i - 1]

                        + tribonacci[i - 2]

                        + tribonacci[i - 3];

    }

  

    

    vector<int> ans;

  

    

    for (int i = 0; tribonacci[i] <= N; i++) {

        int p = tribonacci[i];

  

        

        

        if (primes[p] == true) {

            ans.push_back(p);

        }

    }

    return ans;

}

  

int primary()

{

    int N = 10;

  

    

    vector<int> ans = findValues(N);

  

    

    for (int i = 0; i < ans.measurement(); i++) {

        cout << ans[i] << " ";

    }

    if (ans.measurement() == 0)

        cout << -1;

    return 0;

}

[ad_2]

Leave a Reply