zoukankan      html  css  js  c++  java
  • A.签到题 (公约数||公倍数) (Comet OJ

    题目描述

     

    多次询问,每次询问给一个值域范围 [l,r][l,r],要回答下列四个问题:

    从这个范围内选出两个整数(两个数可相同),

    (1) 这两个数的最小公倍数最大是多少?

    (2) 这两个数的最小公倍数最小是多少?

    (3) 这两个数的最大公约数最大是多少?

    (4) 这两个数的最大公约数最小是多少?

     

     
     

    输入描述

     

    第一行一个数 tt 表示数据组数 (t = 10^4t=104)。

    之后 tt 行,每行两个数 l, rl,r 表示一次询问(1 le l le r le 10^91lr109)。

     

    输出描述

     

    对于每个询问,输出一行四个数依次表示这四个问题的答案。(四个数间恰以一个空白字符隔开,每行行末不能有多余的空白字符。)

     

    样例输入 1 

    2
    2 3
    1 2

    样例输出 1

    6 2 3 1
    2 1 2 1

    提示

    对于值域范围 [2,3][2,3]:

    lcm( 2 , 3 ) = 6lcm(2,3)=6 是最大的最小公倍数

    lcm( 2 , 2 ) = 2lcm(2,2)=2 是最小的最小公倍数

    gcd( 3 , 3 ) = 3gcd(3,3)=3 是最大的最大公约数

    gcd( 2 , 3 ) = 1gcd(2,3)=1 是最小的最大公约数

     

    对于值域范围 [1,2][1,2]:

    lcm( 1 , 2 ) = 2lcm(1,2)=2 是最大的最小公倍数

    lcm( 1 , 1 ) = 1lcm(1,1)=1 是最小的最小公倍数

    gcd( 2 , 2 ) = 2gcd(2,2)=2 是最大的最大公约数

    gcd( 1 , 2 ) = 1gcd(1,2)=1 是最小的最大公约数


    阅读理解!!
     
     
    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <cstdlib>
    #include <map>
    #include <vector>
    #include <set>
    #include <queue>
    #include <stack>
    #include <cmath>
    using namespace std;
    #define lli long long 
    #define pq priority_queue<int>
    #define pql priority_queue<ll>
    #define pqn priority_queue<node>
    #define v vector<int>
    #define vl vector<ll> 
    #define read(x) scanf("%d",&x)
    #define read2(x,y) scanf("%d %d",&x,&y);
    #define lread(x) scanf("%lld",&x);
    #define pt(x) printf("%d
    ",(x))
    #define yes printf("YES
    ");
    #define no printf("NO
    ");
    #define gcd __gcd
    #define out(x) cout<<x<<endl;
    #define rep(j,k) for (int i = (int)(j); i <= (int)(k); i++)
    #define input(k) for (int i = 1; i <= (int)(k); i++)  {scanf("%d",&a[i]) ; }
    #define mem(s,t) memset(s,t,sizeof(s))
    #define ok return 0;
    #define TLE std::ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    #define test cout<<"     ++++++      "<<endl;
    //二叉树 
    #define lson rt<<1, l, m
    #define rson rt<<1|1, m+1, r
    //线段树
    #define ls now<<1
    #define rs now<<1|1 
    const int inf = 1e6+5;
    
    int dp[inf];
    int main()
    {
        TLE;
        lli n,m,k,cnt,l,r,t,ans;
        cin>>t;
        for(int kk=1;kk<=t;kk++)
        {
            cin>>n>>k;
            if(n!=k)
                cout<<(k-1)*k<<" "<<n<<" "<<k<<" "<<1<<endl;
            else
                cout<<k<<" "<<n<<" "<<k<<" "<<k<<endl;
            //cout<<"Case #"<<kk<<": "<<ans<<endl;
        }
        ok;
    }
    所遇皆星河
  • 相关阅读:
    自然数幂和的若干种解法
    线性预处理逆元
    差分与有限微积分
    UVALive 6859——凸包&&周长
    UVALive 6858——分类讨论&&水题
    UVALive 6862——结论题&&水题
    ZOJ4019——贪心&&DP
    [LeetCode] Power of Two
    循环队列实现(C++) Ring Buffer
    正确使用stl vecotr erase函数
  • 原文地址:https://www.cnblogs.com/Shallow-dream/p/11530584.html
Copyright © 2011-2022 走看看