zoukankan      html  css  js  c++  java
  • 约数 牛客小白月赛10

    链接:https://ac.nowcoder.com/acm/contest/280/C
    来源:牛客网
     

    题解:先求出最大公约数,然后分解最大公约数。

    因为:剩下的公约数,一定比最大公约数小,暴力跑sqrt(), 正常处理就行

    代码:

    #include <bits/stdc++.h>
    #include <cstdio>
    #define int long long
    using namespace std;
    
    vector<int> ans;
    signed main(){
        int a,b;
        cin>>a>>b;
        a=__gcd(a,b);
        for(int i=1;i*i<=a;i++)
            if(a%i==0){
                ans.push_back(i);
                if(a/i!=i) ans.push_back(a/i);
            }
        sort(ans.begin(),ans.end());
        for(vector<int>::iterator iter=ans.begin();iter!=ans.end();++iter)
            cout<<*iter<<" ";
    
    }

    题目描述

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

    输入描述:

    一行两个数a,b.

    输出描述:

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

    示例1

    输入

    复制

    25 37

    输出

    复制

    1

    示例2

    输入

    复制

    25 100

    输出

    复制

    1 5 25

    备注:

    对于100%的数据,1 ≤ a,b ≤ 1013
  • 相关阅读:
    C++ MFC学习 (二)
    C++ MFC字符转换
    C++ MFC学习 (一)
    Windows.h 文件学习
    Git 学习
    Git 学习
    php压缩文件夹并下载到本地
    接口类型无限级分类
    mysql 共享锁 排它锁
    docker基础命令
  • 原文地址:https://www.cnblogs.com/UUUUh/p/10284034.html
Copyright © 2011-2022 走看看