图G
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}小R有一个特殊的无向图,这张图有 n 个顶点,每个顶点有两个权值 ab,对于任意的 i,j \left(1\le i<j \le n\right),如果 \gcd(a_i,a_j)b_i \times b_j 的倍数,那么顶点 i 和顶点 j 连有一条边。
\hspace{15pt}请问这张图一共有多少条边?

【名词解释】
\hspace{15pt}最大公约数(gcd):指两个或多个整数共有约数中最大的一个。例如,1230 的公约数有 1,2,3,6,其中最大的约数是 6,因此记作 \gcd(12,30)=6。特别地,单个整数的 \gcd 定义为其自身。

输入描述:

\hspace{15pt}第一行输入一个整数 n \left(1\le n\le 10^5\right),表示图的顶点数。
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\ldots,a_n \left(1\le a_i\le 10^9\right),表示每个顶点的权值 a
\hspace{15pt}第三行输入 n 个整数 b_1,b_2,\ldots,b_n \left(1\le b_i\le 10^3\right),表示每个顶点的权值 b

输出描述:

\hspace{15pt}输出一个整数,表示图的边数。
示例1

输入

复制
3
2 3 4
1 2 2

输出

复制
1

说明

\hspace{15pt}容易验证,只有 \gcd(a_1,a_3)=2b_1 \times b_3=2 的倍数,故只有 1 条边。
示例2

输入

复制
4
4 6 4 1
2 2 2 2

输出

复制
1