#2589. 「NOIP2009」Hankson 的趣味题

内存限制:128 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: 匿名

题目描述

Hanks 博士是 BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫 Hankson。现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。

今天在课堂上,老师讲解了如何求两个正整数 c1c1c1c2c2c2 的最大公约数和最小公倍数。现在 Hankson 认为自己已经熟练地掌握了这些知识,他开始思考一个”求公约数”和“求公倍数”之类问题的“逆问题”,这个问题是这样的:已知正整数 a0,a1,b0,b1a0,a1,b0,b1a0,a1,b0,b1,设某未知正整数 xxx 满足:

  1. xxxa0a0a0 的最大公约数是 a1a1a1
  2. xxxb0b0b0 的最小公倍数是 b1b1b1

Hankson 的“逆问题”就是求出满足条件的正整数 xxx 。但稍加思索之后,他发现这样的 xxx 并不唯一,甚至可能不存在。因此他转而开始考虑如何求解满足条件的 xxx 的个数。请你帮助他编程求解这个问题。

输入格式

第一行为一个正整数 nnn ,表示有 nnn 组输入数据。
接下来的 nnn 行每行一组输入数据,为四个正整数 a0,a1,b0,b1a0,a1,b0,b1a0,a1,b0,b1,每两个整数之间用一个空格隔开。
输入数据保证 a0a0a0 能被 a1a1a1 整除,b1b1b1 能被 b0b0b0 整除。

输出格式

nnn 行。每组输入数据的输出结果占一行,为一个整数。
对于每组数据:若不存在这样的 xxx,请输出 000;若存在这样的 xxx,请输出满足条件的 xxx 的个数。

样例

样例输入

2
41 1 96 288
95 1 37 1776

样例输出

6
2

样例说明

第一组输入数据,xxx 可以是 9,18,36,72,144,2889,18,36,72,144,2889,18,36,72,144,288,共有 666 个;
第二组输入数据,xxx 可以是 48,177648,177648,1776,共有 222 个。

数据范围与提示

对于50%50\%50% 的数据,保证有 a0,a1,b0,b1≤104a0,a1,b0,b1\leq 10^4a0,a1,b0,b1104n≤100n\le 100n100
对于100%100\%100% 的数据,保证有 1≤a0,a1,b0,b1≤2×1091\le a0,a1,b0,b1\le 2\times 10^91a0,a1,b0,b12×109n≤2000n\le 2000n2000