题目链接


Solution

此题,用到的结论都是比较浅显的,但是,我竟然没想到反过来枚举...

只有50分... 被自己蠢哭...

结论比较浅显:

1.对于两个正整数\(a\),\(b\),设 \(gcd(a,b)=k\),则存在\(gcd(a/k,b/k)=1\).

也就是说 \(x=k_1*a_1\),\(a_0=k_2*a_1\),它们最大公约数为\(a_1\),那么要求 \(k_1\) 与 \(k_2\) 必须互质,否则它们的最大公约数会是 \(gcd(k_1,k_2)*a_1\).


2.对于两个正整数\(a\),\(b\),设\(lcm(a,b)=k\),则存在\(gcd(k/a,k/b)=1\).

比较浅显,可以由 \(a*b=gcd(a,b)*lcm(a,b)\) 推出来.




然后通过分析题意结论,便可以分析出 \(x\) 满足 \(x\) 是 \(b_1\) 的因子,并且满足是 \(a_1\) 的倍数.

所以我们直接 \(\sqrt{b_1}\) 枚举其因子,并且判断是否满足上述条件即可.



### Code
### 100 分做法
```cpp
#include
#define ll long long
using namespace std;
ll n,a1,a0,b0,b1;

ll gcd(ll x,ll y)

{

if(y==0)return x;

else return gcd(y,x%y);

}

int main()

{

scanf("%lld",&n);

while(n--)

{

scanf("%lld%lld%lld%lld",&a0,&a1,&b0,&b1);

if(b1%a1!=0){printf("0\n");continue;}

ll ans=0,maxx=sqrt(b1);

for(int x=1;x<=maxx;x++)

{

if(b1%x!=0)continue;

if(x%a10)

if(gcd(b1/b0,b1/x)1)

if(gcd(x/a1,a0/a1)1)

ans++;

if(b1/xx)continue;

ll y=b1/x;

if(y%a10)

if(gcd(b1/b0,b1/y)1)

if(gcd(y/a1,a0/a1)==1)

ans++;

}

printf("%lld\n",ans);

}

}

### 50 分做法(暴力枚举 $a_1$ 的倍数,然后判断)
```cpp
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,a1,a0,b0,b1; ll gcd(ll x,ll y)
{
if(y==0)return x;
else return gcd(y,x%y);
} int main()
{
scanf("%lld",&n);
while(n--)
{
scanf("%lld%lld%lld%lld",&a0,&a1,&b0,&b1);
if(b1%a1!=0){printf("0\n");continue;}
ll tt=0,ans=0;
while(1)
{
tt++;
if(tt*a1>b1)break;
ll x=tt*a1;
if(b1%x!=0)continue;
if(gcd(x,a0)!=a1)continue;
if(x*b0!=gcd(b0,x)*b1)continue;
ans++;
}
printf("%lld\n",ans);
}
}

最新文章

  1. 【Android】[转] Android Handler应设为static
  2. vim备忘
  3. [ASE][Daily Scrum]11.17
  4. Box2d引擎之元素
  5. 远程调用WMI安装软件
  6. AD新建用户、组、OU
  7. PHP学习笔记(1) - 开发环境搭建
  8. sql: 生日三个月内有效
  9. android activity启动的时候隐藏软键盘
  10. Java 中基本类型和字符串之间的转换
  11. PHP去除unicode续:json_encode之后,仅仅有文字,数字不见了的解决方法
  12. 带着新人看java虚拟机06(多线程篇)
  13. 详解MySQL表空间以及ibdata1文件过大问题
  14. SortedSet的实现类是TreeSet:它的作用是字为添加到TreeSet中的元素排序。
  15. 20165313 《Java程序设计》第四周学习总结
  16. 190. Reverse Bits (Int; Bit)
  17. LeetCode 题解之Reverse Words in a String
  18. 关于win时间同步的解决方案
  19. exe怎么找main函数
  20. 【LeetCode】77. Combinations (2 solutions)

热门文章

  1. [web开发] Vue+Spring Boot 上海大学预约系统开发记录
  2. Expires和Cache-Control
  3. 队列的add与offer的区别
  4. iOS开发-动画总结
  5. 【思维题 欧拉图】loj#10106. 单词游戏
  6. linux关于yum
  7. django知识分支_1
  8. python之绝对导入和相对导入
  9. python基础之文件处理总结
  10. JAVA基础篇—String和StringBuffer