辗转相除法C++

2021年6月4日 | 分类: 【编程】
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
	int a1, a2, d, b;//定整变
	int c, j;//  int   义数量
	cout << "请分别输入您求最大公约数的两个最大公约数" << endl;
	cin >> a1;
	cin >> a2;
	while (a1 != 0 || a2 != 0)
	{
		if (a1>a2)
		{
			a1 = a2;
			a2 = a1%a2;
			d = a2;
		}
		else
		{
			a2 = a1;
			a1 = a2%a1;
			d = a1;
		}
		if (a1%a2 == 0 || a2%a1 == 0)
		{
			if (a1%a2 == 0)
			{
				b = a2;
			}
			else
			{
				b = a1;
			}
			cout << b << "是最大公约数。" << endl;
			return 0;
		}
	}
	cout << "这两个数没有最大公约数。" << endl;
	cin.get();//这行等用输两回
	cin.get();//两是待户入个车
	return 0;
}