import
java.util.Vector;
public
class
GFG {
static
int
max_val(
int
[] arr) {
int
i;
int
max = arr[
0
];
for
(i =
1
; i < arr.length; i++) {
if
(arr[i] > max) {
max = arr[i];
}
}
return
max;
}
static
void
compositeSumProduct(
int
arr[],
int
n,
int
k) {
int
max_val = max_val(arr);
Vector<Boolean> prime =
new
Vector<>();
for
(
int
i =
0
;i<max_val+
1
;i++){
prime.add(i, Boolean.TRUE);
}
for
(
int
p =
2
; p * p <= max_val; p++) {
if
(prime.get(p) ==
true
) {
for
(
int
i = p *
2
; i <= max_val; i += p) {
prime.add(i, Boolean.FALSE);
}
}
}
int
sum =
0
, product =
1
;
for
(
int
i =
0
; i < n; i++) {
if
(!prime.get(arr[i]) && arr[i] % k ==
0
) {
sum += arr[i];
product *= arr[i];
}
}
System.out.println(
"Sum of composite numbers "
+
"divisible by k is "
+ sum);
System.out.println(
"\nProduct of composite numbers"
+
" divisible by k is "
+ product);
}
public
static
void
main(String[] args) {
int
arr[] = {
1
,
2
,
3
,
4
,
5
,
6
,
7
};
int
n = arr.length;
int
k =
2
;
compositeSumProduct(arr, n, k);
}
}