记录编号 43106 评测结果 AAAAAEETTT
题目名称 [NOIP 2009]Hankson的趣味题 最终得分 50
用户昵称 Gravatar王者自由 是否通过 未通过
代码语言 C++ 运行时间 4.236 s
提交时间 2012-10-06 16:49:07 内存使用 0.31 MiB
显示代码纯文本
#include <cstdio>
#include <cmath>
int n, a[2], b[2], x, y, z, s;
inline int gcd(int a, int b) {
    return a ? gcd(b % a, a) : b;
}
int main() {
    freopen("son.in", "r", stdin);
    freopen("son.out", "w", stdout);
    scanf("%d", &n);
    for(int i=0; i<n; i++) {
        scanf("%d %d", a, a+1);
        scanf("%d %d", b, b+1);
        s = 0; z = (int) sqrt((double) b[1]);
        for(x=1; x<=z; x++) {
            if(gcd(x, a[0]) == a[1] && gcd(x, b[0]) * b[1] == x * b[0]) s++;
            y = b[1] / x; if(b[1] % x || x == y || !y) continue;
            if(gcd(y, a[0]) == a[1] && gcd(y, b[0]) * b[1] == y * b[0]) s++;
        }
        printf("%d\n", s);
    }
    return 0;
}