辗转相除法__约分

#include<iostream>
using namespace std;
int main()
{

    int temp1;
    int temp2;
    cin>>temp1>>temp2;

    int a=temp1;

    int b=temp2;

        while(b!=0)
        {
        int temp=a%b;
        a=b;
        b=temp;

        }

    cout<<temp1/a<<"/"<<temp2/a;
  return 0;
}

辗转相除法

辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。

例如,求(319377):

∵ 319÷377=0(余319)

∴(319377=377319);

∵ 377÷319=1(余58)

∴(377319=31958);

∵ 319÷58=5(余29)

∴ (31958=5829);

∵ 58÷29=2(余0)

∴ (5829= 29;

∴ (319377=29

可以写成右边的格式。

用辗转相除法求几个数的最大公约数,可以先求出其中任意两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,依次求下去,直到最后一个数为止。最后所得的那个最大公约数,就是所有这些数的最大公约数。

发布了54 篇原创文章 · 获赞 25 · 访问量 2191

猜你喜欢

转载自blog.csdn.net/qq_15719613/article/details/103040402