noip2009 luogu1072 Hankson的趣味题
2017-09-27 09:49
274 查看
变量x。
已知
gcd(x,a0)=a1, lcm(x,b0)=b1即 gcd(x,b0)=xb0lcm(x,b0)=xb0b1。
化简得 gcd(xa1,a0a1)=1, gcd(b1x,b1b0)=1,显然x为a1倍数且为b1因数。
以上是我看的别人的。事实上,不需推理,十分容易发现x为a1倍数且为b1因数……
已知
gcd(x,a0)=a1, lcm(x,b0)=b1即 gcd(x,b0)=xb0lcm(x,b0)=xb0b1。
化简得 gcd(xa1,a0a1)=1, gcd(b1x,b1b0)=1,显然x为a1倍数且为b1因数。
以上是我看的别人的。事实上,不需推理,十分容易发现x为a1倍数且为b1因数……
#include <iostream> #include <cstdio> using namespace std; int gcd(int a, int b){ return !b?a:gcd(b, a%b); } int main(){ int n, a0, a1, b0, b1, x; cin>>n; while(n--){ scanf("%d %d %d %d", &a0, &a1, &b0, &b1); int cnt=0; for(int i=1; i*i<=b1; i++) if(b1%i==0){ if(i%a1==0 && gcd(i/a1, a0/a1)==1 && gcd(b1/b0, b1/i)==1) ++cnt; x = b1/i; if(x==i) continue; if(x%a1==0 && gcd(x/a1, a0/a1)==1 && gcd(b1/b0, b1/x)==1) ++cnt; } printf("%d\n", cnt); } return 0; }
相关文章推荐
- 【NOIP2009】洛谷1072 Hankson的趣味题
- [NOIp 2009]Hankson的趣味题
- NOIP2009 Hankson的趣味题
- NOIP2009Hankson 的趣味题
- 小Y的数学作业(Hankson 的趣味题)[NOIP2009提高组][Codevs1172]
- noip2009 hankson的趣味题 (扩展欧几里得求最大公约数,最小公倍数与最大公约数)
- NOIP2009 Hankson的趣味题
- NOIP2009 Hankson的趣味题(还真是有趣呢!)
- 【NOIP2009】【数论】T2 Hankson的趣味题 题解
- 【Noip2009】hankson的趣味题
- NOIp2009 Hankson的趣味题
- NOIP2009 Hankson的趣味题 [数论]
- [NOIP2009] Hankson 的趣味题
- NOIp2009TG T2/Luogu P1072 Hankson的趣味题 解题报告
- 【数论】【NOIP2009】Hankson的趣味题
- 洛谷P1072 [NOIP2009] Hankson 的趣味题
- NOIP 2009 解题报告(潜伏者,hankson的趣味题,最有贸易,靶形数独)
- [jzoj2538]【NOIP2009TG】Hankson 的趣味题
- NOIP 2009 Senoir 2 - Hankson 的趣味题
- noip2009 Hankson的趣味题