import
java.util.*;
class
GFG
{
static
int
binSearch(
int
[] g,
int
st,
int
en,
int
val)
{
int
ind = -
1
;
while
(st <= en)
{
int
mid = st + (en - st) /
2
;
if
(g[mid] % val ==
0
)
{
ind = mid;
st = mid +
1
;
}
else
{
en = mid -
1
;
}
}
return
ind +
1
;
}
static
void
solveQueries(
int
[]arr,
int
[]queries,
int
n,
int
q)
{
int
[]g =
new
int
[n];
for
(
int
i =
0
; i < n; i++)
{
if
(i ==
0
) {
g[i] = arr[i];
}
else
{
g[i] = __gcd(g[i -
1
], arr[i]);
}
}
for
(
int
i =
0
; i < q; i++)
{
System.out.print(binSearch(g,
0
, n -
1
,
queries[i])
+
" "
);
}
}
static
int
__gcd(
int
a,
int
b)
{
return
b ==
0
? a:__gcd(b, a % b);
}
public
static
void
main(String[] args)
{
int
arr[] = {
12
,
6
,
15
,
3
,
10
};
int
n = arr.length;
int
queries[] = {
4
,
3
,
2
};
int
q = queries.length;
solveQueries(arr, queries, n, q);
}
}