首先我们是利用辗转相除法去求
思路:
例如:325,130
先用325/130的余数=65
再用130/余数65的余数=0
得到325和130的最大公约数为65
代码如下:
#define _CRT_SECURE_NO_WARNINGS //vs用scanf输入时的要求
#include <stdio.h>
int main() {
int m, n,r,t; //r为余数,t为中间变量,用来换除数与被除数m和n
scanf("%d %d", &m, &n); //输入两个数
if (m > n) ///判断m是否大于n,我们默认m为除数,n为被除数
{
}
else { //如果小于就交换一下
t = m;
m = n;
n = t;
}
r = m % n; //第一次的余数
while (1) { 里面写1就是一直满足条件一直循环,直到余数为0时break退出
if (r == 0)
{
printf("m和n的最大公约数是%d", n);
break;
}
else
{
m = n;
n = r;
r = m % n;
}
}
return 0;
}