题干:

Actci上课睡了一觉,下课屁颠屁颠的去找数学老师补课,问了老师一个题目:
    给出两个数a,b,问a和b的全部公约数是什么?
数学老师一看这道题太简单了,不屑回答,于是就交给了你。

输入描述:

一行两个数a,b.

输出描述:

a和b的全部公约数,每个数字之间空格隔开。

示例1

输入

复制

25 37

输出

复制

1

示例2

输入

复制

25 100

输出

复制

1 5 25

备注:

对于100%的数据,1 ≤ a,b ≤ 1013

解题报告:

其实只需要先求出GCD来然后枚举GCD的因子就行了。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
ll a,b;
ll ans[MAX];
int tot;
int main()
{cin>>a>>b;ll g = __gcd(a,b);for(ll i = 1; i*i<=g; i++) {if(g%i==0) ans[++tot] = i,ans[++tot] = g/i;}sort(ans+1,ans+tot+1);int x = unique(ans+1,ans+tot+1) - ans-1;for(int i = 1; i<=x; i++) {printf("%lld ",ans[i]);//if(i<x) printf(" ");}printf("\n");return 0 ;}

附一个枚举因子的超时代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e6 + 5;int aa[MAX],bb[MAX];
ll ans[MAX];
int cnta,cntb;
bool is(ll x) {for(ll i = 2; i*i<=x; i++) {if(x%i==0) return 0;}return 1 ;
}
void fenjie(ll x) {for(ll i = 2; i*i<=x; i++) {if(x%i == 0 && is(i)) {aa[++cnta] = i;while(x%i==0) x/=i;}}if(x>1) aa[++cnta]=x;
}
void fenjie2(ll x) {for(ll i = 2; i*i<=x; i++) {if(x%i == 0 && is(i)) {bb[++cntb] = i;while(x%i==0) x/=i;}}if(x>1) bb[++cntb]=x;
}
int main()
{ll a,b;int tot=0;cin>>a>>b;if(a > b) swap(a,b);fenjie(a);fenjie2(b);ans[++tot]=1;for(int i = 1; i<=cnta; i++) {if(binary_search(bb+1,bb+cntb+1,aa[i])==0) continue;ll yue = aa[i];for(int j = 1; j*yue<=a; j++) {if(b%(j*yue)==0&&a%(j*yue)==0) {ans[++tot] = j*yue;//printf(" %lld",j*yue);}}}sort(ans+1,ans+tot+1);int x = unique(ans+1,ans+tot+1) - ans - 1;for(int i = 1; i<=x; i++) {printf("%lld%c",ans[i],i == x ? '\n' : ' ');}return 0 ;}

【牛客 - 280C】约数(数论,GCD,数学,分解因子)相关推荐

  1. 牛客网——约数的个数

    题目描述 输入n个整数,依次输出每个数的约数的个数 输入描述: 输入的第一行为N,即数组的个数(N<=1000) 接下来的1行包括N个整数,其中每个数的范围为(1<=Num<=100 ...

  2. 牛客 16499 解方程 (数学、Python)

    同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! 链接:https://ac.nowcoder.com/acm/problem/16499 来源:牛客网 时间限制: ...

  3. 牛客18985 数字权重 (数学,快速幂)

    链接:https://ac.nowcoder.com/acm/problem/18985 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

  4. 数列递推(牛客练习赛83)(数学、分块)

    数列递推 给定f(0)f(0)f(0),定义fn=∑i=1nf(nmodi)f_n = \sum\limits_{i = 1} ^{n} f_{(n \mod i)}fn​=i=1∑n​f(nmodi ...

  5. 【牛客 - 331J】炫酷数学(打表猜结论,按位枚举证明)

    题干: 小希最近想知道一个东西,就是A+B=A|B(其中|为按位或)的二元组有多少个. 当然,直接做这个式子对小希来说太难了,所以小希改变了一些条件,她仅想知道其中A,B<NA,B<N的情 ...

  6. 牛客 数学实验(模拟)

    文章目录 1. 题目 2. 解题 1. 题目 链接:https://ac.nowcoder.com/acm/contest/10166/A 来源:牛客网 牛牛在做数学实验. 老师给了牛牛一个数字n,牛 ...

  7. 牛客竞赛语法入门班顺序结构习题(重现赛)

    1039-使徒袭来 链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 神秘的使徒袭击了第三新东京市,少男少女们驾驶着决战兵器EVA守护着人类的和平. 牛可乐是NERV特务机关的指挥官,他必须 ...

  8. 【牛客 - 327牛客寒假算法基础集训营2 I】处女座的测验(二)(积性函数性质,数论,素数唯一性分解,STL)

    题干: 链接:https://ac.nowcoder.com/acm/contest/327/I 来源:牛客网 现在处女座顺利的完成了测验,处女座想要知道知道自己输出的结果是否正确.他希望知道自己有自 ...

  9. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

最新文章

  1. linux esd转iso,window_Win10 TH2正式版10586官方ESD映像怎么转换成ISO镜像?,今天phpstudy分享了Win10 TH2(Build - phpStudy...
  2. Object of type 'ListSerializer' is not JSON serializable “listserializer”类型的对象不可JSON序列化...
  3. Ecplise中怎样导入Maven项目
  4. 授于某个用户有写作业和调度作业的权限
  5. android中止线程_Android如何结束并重启线程? | 学步园
  6. 124angular1实现无限表单(仅供自己看)
  7. 【noi 2.6_3531】判断整除(DP)
  8. httpclient的post请求超时
  9. MATLAB中好用的快捷键
  10. Go 编码建议——性能篇
  11. 协程分析之 context 上下文切换
  12. oracle联机文档使用,Sqlplus 联机文档学习
  13. 网络不通时自动重启网卡的脚本
  14. 《白帽子讲web安全》第1章 我的安全世界观
  15. 直流电机正反转驱动电路板
  16. Android播放器框架分析之AwesomePlayer
  17. 《居里夫人自传》读后感
  18. 利用Python编写脚本批量下载公众号中的音频
  19. linux windows文件 编码_解决Linux与Windows文件显示乱码的问题
  20. 人工智能为教育创新赋能,开启教学新模式

热门文章

  1. 【数据结构与算法】【算法思想】【算法应用】【排序查找搜索】并行
  2. wifi 信道_说了这么久的信道和频宽,这回总算能弄明白啦
  3. python中parse是什么_Python中optparse模块使用浅析
  4. 网页底部的版权信息_Shopify底部的版权信息(Powered by Shopify )如何删除
  5. EISCONN的故事
  6. 关闭SQLite3中的journal暂存档
  7. Linux I2C核心、总线与设备驱动(二)
  8. BSS段、数据段、代码段、堆与栈
  9. 怎样在PropertySheet中添加按钮
  10. python生成验证码_python之验证码生成(gvcode与captcha)