关于GCD的一些定理或运用的学习:

1.

2.二进制算法求GCD

思想:使得最后的GCD没有2(提前把2提出来)

代码实现:

 #include <cstdio>
#define int long long
int gcd(int x,int y)
{
int i,j;
if(x == ) return y;
if(y == ) return x;
for(i=;==(x&);++i)x>>=;//x & 1 用来判断x是否为偶数
for(j=;==(y&);++j)y>>=;//同理,用来消去x,y因子的2
if(j<i)i=j;
while()
{
if(x<y)x^=y,y^=x,x^=y;//交换x和y的值(等同于swap,只是速度比它快多了(位运算))
if(==(x-=y))return y<<i;
while(==(x&))x>>=;//等同于x = x / 2;
}
}
signed main()
{
int a,b;
scanf("%lld %lld",&a,&b);
printf("%lld",gcd(a,b));
}

2019中山纪念中学夏令营-Day19 数论初步【GCD(最大公约数),素数相关】的更多相关文章

  1. 2019中山纪念中学夏令营-Day14 图论初步【dijkstra算法求最短路】

    Dijkstra是我学会的第一个最短路算法,为什么不先去学SPFA呢?因为我在luogu上翻到了一张比较神奇的图: 关于SPFA -它死了 以及网上还有各位大佬的经验告诉我:SPFA这玩意很容易被卡. ...

  2. 2019中山纪念中学夏令营-Day20[JZOJ] T1旅游详解

    2019中山纪念中学夏令营-Day20[JZOJ] 提高组B组 Team_B组 T1 旅游 Time Limits: 2000 ms  Memory Limits: 262144 KB Descrip ...

  3. 2019中山纪念中学夏令营-Day21[JZOJ]

    2019中山纪念中学夏令营-Day21[JZOJ] 提高组(B组模拟赛)Team_B (由于本人太弱,并没有订正完题目) (题解大部分是从官方题解文件上摘来的) 日常膜拜大神:じやゆん蒟蒻 正文部分: ...

  4. 2019中山纪念中学夏令营-Day9[JZOJ](第六次模拟赛)

    Begin (题目的排序方式:Unkown其实是按心情排的) 异或:(摘自百度百科) 异或(xor)是一个数学运算符.它应用于逻辑运算.异或的数学符号为“⊕”,计算机符号为“xor”.其运算法则为: ...

  5. 2019中山纪念中学夏令营-Day12[JZOJ]

    Begin (题目的排序方式:题号) 每期新姿势:(今天推荐一位巨佬)Cefola-Kiroxs 推荐知识:namespace的用法(本赛我的代码中将用到) 2019.08.12[NOIP普及组]模拟 ...

  6. 2019中山纪念中学夏令营-Day4[JZOJ]

    Begin (题目的排序方式:难易程度) 什么是对拍: 对拍是一种在写完程序后,验证自己程序是不是正解的比较方便的方法. 实现过程: 对同一道题,再打一个暴力程序,然后用一些大数据等跑暴力程序来进行验 ...

  7. 2019中山纪念中学夏令营-Day2[JZOJ]

    博客的开始,先聊聊代码实现: 每次比赛以后,要有归纳错误的习惯. 错误小结: 1.读入:scanf(“%c”)会读入回车和空格,但cin不会. 2.对于二维数组的输入,不能把m,n搞混了,会引起严重的 ...

  8. 2019中山纪念中学夏令营-Day1[JZOJ]

    T1 题目描述: 1999. Wexley接苹果(apple) (File IO): input:apple.in output:apple.out 时间限制: 1000 ms  空间限制: 1280 ...

  9. [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10

    [小结] 中山纪念中学2018暑期训练小结(划掉)(颓废记)-Day10 各位看众朋友们,你们好,今天是2018年08月14日,星期二,农历七月初四,欢迎阅看今天的颓废联编节目 最近发生的灵异事件有 ...

随机推荐

  1. vue 项目安装

    安装stylus npm install stylus stylus-loader --save-dev

  2. [清华集训2016]石家庄的工人阶级队伍比较坚强——三进制FWT

    题目链接: [清华集训2016]石家庄的工人阶级队伍比较坚强 题目大意:有$n=3^m$个人玩石头剪刀布,共$t$轮游戏,每轮每个人要和包括自己的所有人各进行$m$次石头剪刀布.每个人在$m$轮中的决 ...

  3. 20191114-3 Beta阶段贡献分配

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10006 要求1 每位组员的贡献分值 贺敬文:10 王志文:9 彭思雨:8 ...

  4. mybatis延迟加载(Collection)

    上篇讲了assocation,同样我们也可以在一对多关系配置的结点中配置延迟加载策略. 结点中也有 select 属性,column 属性. 需求: 完成加载用户对象时,查询该用户所拥有的账户信息. ...

  5. SRS之SrsServer::cycle()

    1. SrsServer 相关类定义 1.1 SrsServer 类定义 /** * SRS RTMP server, initialize and listen, * start connectio ...

  6. anroid学习笔记(1)

    大概是2个月前,报名了慕课的android就业班课程. 算是补全了当初博客分类的最初设计. 安卓和前端比较: 1,java在安卓开发中的作用,现在我的认识是和JavaScript在前端web开发中有很 ...

  7. jxbrowser 实现自定义右键菜单

    https://blog.csdn.net/shuaizai88/article/details/73743691 public static void main(String[] args) { J ...

  8. [go]os.Open方法源码

    file, err := os.Open("./buf.go") func Open(name string) (*File, error) { return OpenFile(n ...

  9. LC 655. Print Binary Tree

    Print a binary tree in an m*n 2D string array following these rules: The row number m should be equa ...

  10. Popover 弹出框

    基础用法 Popover 的属性与 Tooltip 很类似,它们都是基于Vue-popper开发的,因此对于重复属性,请参考 Tooltip 的文档,在此文档中不做详尽解释. 设置索引ref,在按钮中 ...