C语言如何求两个数的最大公约数

C语言如何求两个数的最大公约数

在C语言中,求两个数的最大公约数是学习循环语句的非常经典的问题,通过编写求解两个数的最大公约数的程序能有效地帮助我们掌握循环语句的使用方法以及程序设计思路。下面,小编将详细介绍该问题的编写过程。

新建一个C语言源程序,使用Visual C++6.0的软件。(这里小编就不再详细赘述新建的过程)

从键盘中输入两个正整数a和b。

代码:

printf("please input two number:\n");

int a,b;

scanf("%d%d",&a,&b);

取两个数a,b中的较小值存放到变量n中。

代码:

int n=a;

if (n>b)

n=b;

从两个数a和b中的较小数开始逐个减小1,寻找能整除a和b的整数。第一个找到的整数即整数a和b的最大公约数。

代码:

for(int i=n;i>=1;i--)

{

if (a%i==0&&b%i==0)

{

printf("最大公约数:%d \n",i);

break;

}

}

点击工具栏的如图图标,对源程序编译运行。

测试:输入4,6,得到最大公约数2。程序是正确的,读者可以测试更多的数。

上面步骤是编程的思路,给出完整代码,方便复制使用。

#include

void main()

{

printf("please input two number:\n");

int a,b;

scanf("%d%d",&a,&b);//从键盘输入两个数

int n=a;

if (n>b)

n=b;//取两个数中的较小数

for(int i=n;i>=1;i--)

{

if (a%i==0&&b%i==0)

{

printf("最大公约数:%d \n",i);

break;

}

}

}