简单数学题
题号:NC22572
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

定义如下函数:

其中为莫比乌斯函数,详见:https://en.wikipedia.org/wiki/M%C3%B6bius_function

对于任何整数,若有,其中大的质因子,则



现在定义
并给出三个长度均为的数列



对于某个整数,如有

则称为z的一种表示

集合为元素的个数

,其中是集合的第个元素,其中的不同的表示的个数。答案对取模。

注意:对于一个数,如果,
只要,那么我们说的这两种表示的两种不同的表示。

输入描述:

首先输入一个整数,接下来是三行整数。

第一行有个整数---

第二行有个整数---

第三行有个整数---

保证后三行输入的所有整数每个数的最大质因子不会超过

输出描述:

输出一个整数,即为上述所需要的答案。输出对取模。
示例1

输入

复制
2
2 3
4 6
6 10

输出

复制
72

说明

很容易推出\ S = \{ 1,2,3,5,6,10,15,30 \}
F(2,4,6)=6\\<br /><br />F(2,4,10)=10\\<br /><br />F(2,6,6)=2\\<br /><br />F(2,6,10)=30\\<br /><br />F(3,4,6)=1\\<br /><br />F(3,4,10)=15\\<br /><br />F(3,6,6)=3\\<br /><br />F(3,6,10)=5
所以\ ans = 1 * 1 + 2 * 1 + 3 * 1 + 5 * 1 + 6 * 1 + 10 * 1 + 15 * 1 + 30 * 1 = 72