【C语言】输入两个数,求最大公约数。

1.基本法

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a, b, i;
	printf("输入两个数:\n");
	scanf("%d %d", &a, &b);
	if (a>b)
	{
		for (i = b; i >= 1; i--)
			if ((a%i == 0) &&( b%i == 0))
			{
			printf("输出最大公约数为:%d\n", i);
			break;
		}
	}
	else
	if (a<b)
	{
		for (i = a; i >= 1; i--)
			if ((a%i == 0) && (b%i == 0))
			{
				printf("输出最大公约数为:%d\n", i);
				break;
			}
	}

	printf("\n");
	system("pause");
	return 0;
}

2.辗转相除法

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a, b, r;
	printf("输入两个数:\n");
	scanf("%d %d", &a, &b);
	while (b != 0)//当b=r=0时循环结束
	{
		r = a%b;
		a = b;
		b = r;
	}
	printf("输出最大公约数为:%d\n", a);
	system("pause");
	return 0;
}

3.辗转相减

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a, b;
	printf("输入两个数:\n");
	scanf("%d %d", &a, &b);
	while (a != b)
	{
		if (a > b)
			a = a - b;
		else
			if (a < b)
			b= b - a;
 }
	printf("输出最大公约数为:%d\n",a );
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43416226/article/details/89085950
今日推荐