C语言如何求两个数的最大公约数
1.新建一个C语言源程序,使用Visual C++6.0的软件。
2.从键盘中输入两个正整数a和b。
代码:
printf("please input two number:\n");
int a,b;
scanf("%d%d",&a,&b);
3.取两个数a,b中的较小值存放到变量n中。
代码:
int n=a;
if (n>b)
n=b;
4.从两个数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;
}
}
5.点击工具栏的如图图标,对源程序编译运行。
6.测试:输入4,6,得到最大公约数2。程序是正确的,读者可以测试更多的数。
7.上面步骤是编程的思路,给出完整代码,方便复制使用。
#include<stdio.h>
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;
}
}
}
C语言——求最大公约数和最小公倍数的简单程序
首先我们输入两个整数m和n,小的数赋值给m,大的数给n。先找n的约数,用一个中间量i代替m,从i开始,如果n%i==0,则说明n,m的最大公约数就是m,否则执行第3步,i自减1,再执行n%i,判断n%i==0,如果是说明n能被i整除;执行第4步,否则再次执行第3步,判断m%i是否等于0,如果是说明n和m能同时被i整除,最大公约数为i;否则执行第3步,最小公倍数比较容易求,只要两数相乘,然后除以最大公约数就可以得到。
c语言最大公约数怎么写
两个自然数a和b的公约数是可以同时整除这两个数的约数。C语言中为了求解这个最大公约数,需要编写一个函数,传入a和b,然后编写一个循环,从a和b中较小的那个数开始,向前递减,直到数字1,如果在循环过程中,发现某个数可以同时整除a和b,那么就返回这个数,即a和b的最大公约数。希望以上回答可以帮助到您。
c语言求多个数最大公约数算法
要求多个数的最大公约数,可以使用欧几里得算法。首先,取前两个数的最大公约数,然后再将这个最大公约数与下一个数求最大公约数,依次类推,直到所有数都求完。
欧几里得算法通过不断取余操作,将两个数的最大公约数转化为两个数的余数的最大公约数,直到余数为0,此时前一个余数即为最大公约数。
这样,可以通过循环遍历所有数,不断更新最大公约数,最终得到多个数的最大公约数。
int i,a=3,b=6; int max=b; //初始化b大,下面判断如果a>b就把a给max //判断a,b大小 if(a>b) max=a; for(i=max;i>0;i--) //公约数肯定不大于两数中最大的,所以从最大的往下找,找到的第一个就是最大 { if(a%i==0 && b%i==0) { printf("最大公约数%d",i); break; //找到最大的就退出 } }