记录编号 |
233161 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2009]Hankson的趣味题 |
最终得分 |
100 |
用户昵称 |
NVIDIA |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.511 s |
提交时间 |
2016-03-04 10:17:50 |
内存使用 |
0.31 MiB |
显示代码纯文本
- #include<iostream>
- #include<cmath>
- #include<cstdio>
- #include<algorithm>
- #include<cctype>
- #include<string>
- using namespace std;
- int n;
- int a[2],b[2];
- int tot=0;
- int gcd(int a,int b){return b==0?a:gcd(b,a%b);}
- int main()
- {
- freopen("son.in","r",stdin);
- freopen("son.out","w",stdout);
- scanf("%d",&n);
- while(n--)
- {
- tot=0;
- scanf("%d%d",&a[0],&a[1]);
- scanf("%d%d",&b[0],&b[1]);
- int tmp=(int)(sqrt((double)b[1]));
- for(int i=1;i<=tmp;++i){
- if(b[1]%i)continue;
- if(gcd(a[0],i)==a[1]&&gcd(b[0],i)*b[1]==b[0]*i)tot++;
- int j=b[1]/i;
- if(j%a[1])continue;
- if(j<=i||j==0)continue;
- if(gcd(a[0],j)==a[1]&&gcd(b[0],j)*b[1]==b[0]*j)tot++;
- }
- printf("%d\n",tot);
- }
- return 0;
- }
-