#include
en utilisant l’espace de noms std ;
void TamisOfÉratosthène(
vector
{
pour (int i = 0; i <= somme_totale; i++) {
premier[i] = vrai ;
}
pour (int p = 2; p * p <= somme_totale; p++) {
si (premier[p] == vrai) {
pour (int i = p * p; i <= total_sum; i += p)
premier[i] = faux ;
}
}
}
int maxLenSubarrayWithSumPrime(
vecteur
{
int total_sum = 0 ;
pour (int i = 0; i < n; i++) {
somme_totale += arr[i];
}
vecteur
SieveOfEratosthenes(prime, total_sum);
int max_sum = 0, cur_sum = 0;
pour (int i = 0; i < n; i++) {
somme_cur = 0 ;
pour (int j = i; j < n; j++) {
somme_cur += arr[j];
si (premier[cur_sum]) {
somme_max = max(somme_max, j – i + 1);
}
}
}
retour max_sum ;
}
int main()
{
entier n = 6;
vecteur
cout << maxLenSubarrayWithSumPrime(arr, n);
}