浅谈数论(一) 最大公因数与最小公倍数

辗转相除法——-欧几里得算法求最大公因数——-求gcd
#include<cstdio>
using namespace std;
int Eu(int a,int b)
{
    if(!b)return a;
    else return Eu(b,a%b);
}
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    printf("%d\n",Eu(n,m));
    return 0;
}

而最小公倍数则是两数之积除gcd();

#include<cstdio>
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
    if(!b)return a;
    return gcd(b,a%b);
}
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    if(n>m)swap(n,m);
    printf("%d\n%d\n",gcd(n,m),n*m/gcd(n,m));
    return 0;
}



 

posted @ 2016-07-09 14:21  keshuqi  阅读(304)  评论(0编辑  收藏  举报