import
java.util.*;
class
GFG {
static
long
mod =
1000000007
;
static
int
findNumbers(List<Integer> arr)
{
int
n = arr.size();
HashMap<Long, Long> mp =
new
HashMap<Long, Long>();
for
(
int
i : arr) {
if
(mp.containsKey((
long
)i))
mp.put((
long
)i, mp.get((
long
)i) +
1
);
else
mp.put((
long
)i, (
long
)
1
);
}
List<Integer> prime = Arrays.asList(
2
,
3
,
5
,
7
,
11
,
13
,
17
,
19
,
23
,
29
);
List<Integer> temp =
new
ArrayList<Integer>();
for
(
int
i =
1
; i <
1024
; i++) {
long
p =
1
;
for
(
int
j =
0
; j <
11
; j++) {
if
((i >> j) %
2
==
1
)
p *= prime.get(j);
}
temp.add((
int
)p);
}
int
ans =
0
;
for
(
int
i : temp) {
for
(
int
j =
1
; j * j < i; j++) {
if
(i % j ==
0
) {
if
(mp.containsKey((
long
)j)
&& mp.containsKey((
long
)(i / j))) {
if
(mp.containsKey((
long
)i))
mp.put((
long
)i,
(mp.get((
long
)i)
+ mp.get((
long
)j)
* mp.get((
long
)(i / j)))
% mod);
else
mp.put((
long
)i,
(mp.get((
long
)j)
* mp.get((
long
)(i / j)))
% mod);
}
}
}
if
(mp.containsKey((
long
)i))
ans = (ans + (
int
)(mp.get((
long
)i) % mod))
% (
int
)mod;
}
return
ans;
}
public
static
void
main(String[] args)
{
List<Integer> arr = Arrays.asList(
2
,
4
,
3
);
int
ans = findNumbers(arr);
System.out.println(ans);
}
}