import
java.util.*;
class
GFG
{
static
int
max_element(
int
a[])
{
int
m = a[
0
];
for
(
int
i =
0
; i < a.length; i++)
m = Math.max(a[i], m);
return
m;
}
static
int
primeCount(
int
arr[],
int
n)
{
int
max_val = max_element(arr);
boolean
prime[] =
new
boolean
[max_val +
1
];
for
(
int
p =
0
; p <= max_val; p++)
prime[p] =
true
;
prime[
0
] =
false
;
prime[
1
] =
false
;
for
(
int
p =
2
; p * p <= max_val; p++)
{
if
(prime[p] ==
true
)
{
for
(
int
i = p *
2
; i <= max_val; i += p)
prime[i] =
false
;
}
}
int
count =
0
;
for
(
int
i =
0
; i < n; i++)
if
(prime[arr[i]])
count++;
return
count;
}
static
int
[] getPrefixArray(
int
arr[],
int
n,
int
pre[])
{
pre[
0
] = arr[
0
];
for
(
int
i =
1
; i < n; i++)
{
pre[i] = pre[i -
1
] + arr[i];
}
return
pre;
}
public
static
void
main(String args[])
{
int
arr[] = {
1
,
4
,
8
,
4
};
int
n = arr.length;
int
pre[]=
new
int
[n];
pre=getPrefixArray(arr, n, pre);
System.out.println(primeCount(pre, n));
}
}