求最大公约数

116 阅读1分钟

20220624

#include<stdio.h>
int main()
{
	int x = 0;
	int y = 0;
	scanf_s("%d %d", &x, &y);


	if (x > 0 && y > 0)
	{
		int max = 0;
		if (x < y)
			max = y;
		else
			max = x;

		for (max; max != 0; max--)
		{
			if (x % max == 0 && y % max == 0)
			{
				printf("最大公约数是:%d", max);
				break;
			}
		}
	}
	else
		printf("输入错误(不得有字符及负数或零)");
}

可以报错,纠正

还有新的方法(辗转相除)

int main()
{
	int a = 0;
	int b = 0;
	int t = 0;
	scanf_s("%d %d", &a, &b);

	while (t = a % b)
	{
		a = b;
		b = t;

	}

	printf("最大公约数是:%d", b);


	return 0;
}