辗转相除法__约分

#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

可以写成右边的格式。

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

本文作者:TwcatL_tree

本文链接:https://www.cnblogs.com/twcat/p/16912834.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   TwcatL_tree  阅读(34)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起