zoukankan      html  css  js  c++  java
  • 三种方法求公约数等

    #include<stdio.h>
    int main()
    {
    int i,j,n,p,q,tep,s,r;
    scanf("%d",&n);
    while(n--)
    {
    scanf("%d%d",&p,&q);
    if(p<q)
    {
    tep=q;
    q=p;
    p=tep;
    }

    s=p*q;
    while(q)//经过上面,q较小,最大公约数不会超过较小者
    {
    r=p%q;
    p=q;
    q=r;
    }
    printf("%d\t%d",q,s/q);
    return 0;
    }
    }
    printf("%d\t%d",q,s/q);
    return 0;
    }
    }

    #include<stdio.h>
    #include <stdlib.h>
    int gcd(int ,int);
    int main()
    {
    int n,p,q,s,r,ss;
    scanf("%d",&n);
    while(n--)
    {
    scanf("%d %d",&p,&q);
    s=p*q;
    ss=gcd(p,q);

    printf("%d %d\n",ss,s/ss);
    }
    //system("pause");
    return 0;
    }
    /////////////////////
    欧几里德算法也就是辗转相除法,有着2000年的历史了。欧几里德算法依据的算法理论是
    一个定理:gcd(a,b) = gcd(b,a mod b)。
    int gcd(int a,int b)
    {
    int temp;
    if(0 == a )
    { return b; }
    if( 0 == b)
    { return a; }
    if(a > b)
    { temp=a; a=b; b=temp; }
    int c;
    for(c = a % b ; c > 0 ; c = a % b)
    { a = b; b = c; }
    return b;
    }
    #include <stdio.h>
    int a(int x,int y)
    {
    if(x%y==0)
    return y;
    else
    return a(y,x%y);
    }
    int b(int x,int y)
    {
    return x*y/a(x,y);
    }
    int main()
    {
    int m,n,t;
    scanf("%d",&t);
    while(t--)
    {
    scanf("%d%d",&m,&n);
    printf("%d %d\n",a(m,n),b(m,n));
    }
    return 0;
    }

  • 相关阅读:
    在虚拟机VM中安装的Ubuntu上安装和配置Hadoop
    初识Hadoop
    Hold住:坚持的智慧
    《人生若只如初见》读后感
    EAS部署:linux 下安装EAS后启动不了服务
    修改Tomcat默认端口
    IntelliJ IDEA工具使用总结
    Mac OSX 包管理工具
    Mac 下安装、卸载Java 7
    MySQL快速命令
  • 原文地址:https://www.cnblogs.com/hxsyl/p/2416232.html
Copyright © 2011-2022 走看看