<script>
var
N = 100000;
var
prime = Array.from({length: N}, (_, i) =>
true
);
function
SieveOfEratosthenes()
{
for
(
var
p = 2; p * p <= N; p++)
{
if
(prime[p] ==
true
)
{
for
(
var
i = p * 2; i < N; i += p)
prime[i] =
false
;
}
}
}
function
longestPrimeSubarray(arr , n)
{
var
left = Array.from({length: n}, (_, i) => 0);
var
right = Array.from({length: n}, (_, i) => 0);
var
primecount = 0, res = 0;
for
(
var
i = 0; i < n; i++)
{
left[i] = primecount;
if
(prime[arr[i]])
{
primecount++;
}
else
primecount = 0;
}
primecount = 0;
for
(
var
i = n - 1; i >= 0; i--)
{
right[i] = primecount;
if
(prime[arr[i]])
{
primecount++;
}
else
primecount = 0;
}
for
(
var
i = 0; i < n; i++)
res = Math.max(res, left[i] + right[i]);
return
res;
}
var
arr = [ 2, 8, 5, 7, 9, 5, 7 ];
SieveOfEratosthenes();
var
n = arr.length;
document.write(
"largest length of PrimeSubarray "
+
longestPrimeSubarray(arr, n));
</script>