这题真TM的趣味

可以说我的动手能力还是不行,想到了算法却写不出来。以后说自己数论会GCD的时候只好虚了……

我们首先这么想。

x与a0的最大公约数为a1,那么我们把x/=a1,a0/=a1之后,x和a0不会再有除了1之外的公约数。

证明:设x/a1=c,a0/a1=d.

若有gcd(c,d)=y 则有p=c/y,q=d/y.

反之c=py,d=qy.

则有x=pya1,a0=qya1。

则x和a0共有公约数ya1。

y属于正实数集,因此ya1>a1.

因此gcd(x,a0)=ya1。

又因为gcd(x,a0)=a1,所以假设与推出结果相矛盾,因此得出那行带颜色的结论。

同样可以得出结论:b1=b0,b1/x两数也不应该有除了1之外的公约数。

证明方式参考上面。

代码如下

#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} long long gcd(long long a,long long b){
if(b==) return a;
return gcd(b,a%b);
} int main(){
int T=read();
while(T--){
int ans=;
int a=read(),b=read(),c=read(),d=read();
for(int i=;i*i<=d;++i){
if(!(d%i)){
if(!(i%b)&&gcd(a/b,i/b)==&&gcd(d/c,d/i)==) ans++;
int j=d/i;
if(i==j) continue;
if(!(j%b)&&gcd(a/b,j/b)==&&gcd(d/c,d/j)==) ans++;
}
}
printf("%d\n",ans);
}
return ;
}

【Luogu】P1072Hankson的趣味题(gcd)的更多相关文章

  1. 洛谷P1072Hankson的趣味题题解

    题目 一道十分经典的数论题,在考场上也可以用暴力的算法来解决,从而得到\(50pts\)的较为可观的分数,而如果想要AC的话,我们观察原题给的数据范围\(a,b,c,d\)(为了好表示,分别代表a1, ...

  2. P1072Hankson的趣味题

    传送 这个题一本通上有,但是为了增强我们的创新精神,思维能力balabala,书上的满分程序不全,要优化一下,在此写一下第二种方法 #include<iostream> #include& ...

  3. luogu P1072 Hankson的趣味题

    题目链接 luogu P1072 Hankson 的趣味题 题解 啊,还是noip的题好做 额,直接推式子就好了 \(gcd(x,a_0)=a_1=gcd(\frac{x}{a_1},\frac{a_ ...

  4. CodeForces 992B Nastya Studies Informatics + Hankson的趣味题(gcd、lcm)

    http://codeforces.com/problemset/problem/992/B  题意: 给你区间[l,r]和x,y 问你区间中有多少个数对 (a,b) 使得 gcd(a,b)=x lc ...

  5. 算法训练 Hankson的趣味题

    算法训练 Hankson的趣味题   时间限制:1.0s   内存限制:64.0MB        问题描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Han ...

  6. 1172 Hankson 的趣味题[数论]

    1172 Hankson 的趣味题 2009年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Descrip ...

  7. 1172 Hankson 的趣味题

    1172 Hankson 的趣味题 2009年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Descrip ...

  8. Codevs 1172 Hankson 的趣味题 2009年NOIP全国联赛提高组

    1172 Hankson 的趣味题 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description Hanks 博 ...

  9. 一本通1626【例 2】Hankson 的趣味题

    1626:[例 2]Hankson 的趣味题 题目描述 Hanks 博士是BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫Hankson.现在,刚刚放学回家的Hankson 正在思考 ...

随机推荐

  1. vue从入门到开发--2-基本结构

    1.App.vue 是根文件,所有的其他组件的执行均需要在此文件内导入并调用才能实现. import (导入其他组件) Test (其他组件的名字) from ‘./components/test’( ...

  2. jsonwebapi请求头的设置

    Content-Type: application/x-www-form-urlencoded; charset=UTF-8

  3. vue+element ui项目总结点(三)富文本编辑器 vue-wangeditor

    1.参考 https://www.npmjs.com/package/vue-wangeditor 使用该富文本编辑器 <template> <div class="egi ...

  4. Exoplanet: The hunt is on

    原文 How many planets are out there? Today scientists believe that planets could outnumber the stars.F ...

  5. ABAP Netweaver, SAP Cloud Platform和Kubernetes的用户区分

    ABAP Dialog: Individual, interactive system access. System: Background processing and communication ...

  6. vs和github同步开发步骤

    首先,这是在visual studio中使用.需要了解关于vs同步github必不可少.下载安装破解什么的先完成vs. 1. 然后安装一个vs中使用github的插件.vs自带的下载.这个是下载地址. ...

  7. Linux OpenGL 实践篇-14-多实例渲染

    多实例渲染 OpenGL的多实例渲染是一种连续执行多条相同的渲染命令的方法,并且每条命令产生的结果都有轻微的差异,通常用于渲染大量的几何物体. 设想一个场景,比如太空,我们需要渲染数以万记的星球,如果 ...

  8. JAVASCRIPT闭包以及原型链

    方法内部还有个方法,实例化父方法后,再次调用父方法,可以运行父方法内部的子方法,这样的程序就叫做闭包 DEMO如下: //function outerFn() { // var outerVar = ...

  9. 清理数据库事务——SQL语句

    清除流程内部的所有相关数据 eg1: declare @procedureTemp table ( [ProcedureCode] varchar(10) ) declare @ProcedureCo ...

  10. react native在xcode真机调试ios

    1修改URL地址:打开项目目录下的AppDelegate.m文件,修改里面的URL,把localhost改为你的电脑的IP.在Mac系统下,你可以在系统设置/网络里找到电脑的IP地址. 2选择设备:把 ...