zoukankan      html  css  js  c++  java
  • nyoj 40-公约数和公倍数(gcd)

    40-公约数和公倍数


    内存限制:64MB 时间限制:1000ms Special Judge: No
    accepted:30 submit:47

    题目描述:

    小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。

    输入描述:

    第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
    随后的n行输入两个整数i,j(0<i,j<=32767)。

    输出描述:

    输出每组测试数据的最大公约数和最小公倍数

    样例输入:

    3
    6 6
    12 11
    33 22
    

    样例输出:

    6 6
    1 132
    11 66

    分析:
      ①、求最大公约数可以用递归的方法(gcd);
      
    1 int gcd(int a, int b)
    2 {
    3     if(b == 0) return a;
    4     return gcd(b, a%b);
    5 }

      ②、最大公约数和最小公倍数相乘即就是对应的两个数直接相乘

      ③、最小公倍数 = a*b / gcd(a, b)


    C/C++代码实现(AC):
      
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstring>
     4 #include <cstdio>
     5 #include <cmath>
     6 #include <stack>
     7 #include <map>
     8 #include <queue>
     9 #include <set>
    10 
    11 using namespace std;
    12 const int MAXN = 510;
    13 
    14 int gcd(int x, int y)
    15 {
    16     if(y == 0) return x;
    17     return gcd(y, x%y);
    18 }
    19 
    20 int main()
    21 {
    22 
    23     int t;
    24     scanf("%d", &t);
    25     while(t --)
    26     {
    27         int a, b, temp;
    28         scanf("%d%d", &a, &b);
    29         temp = gcd(a, b);
    30         printf("%d %d
    ", temp, a*b/temp);
    31     }
    32 
    33     return 0;
    34 }
    
    
    
    
    
  • 相关阅读:
    好的Qt学习资料
    QT QMap介绍与使用
    Qt缺少调试器
    vs2012+Qt5.3.1环境添加新的ui界面的方法
    QT定时器的使用
    Qt中forward declaration of struct Ui::xxx的解决
    linux-svn命令
    如何编写Windows服务
    为你的爬虫提提速?
    Python爬虫的N种姿势
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/9074364.html
Copyright © 2011-2022 走看看