找出两个数的最大公约数
思路:
要知道某两个数的最大公约数首先要知道公约数是什么
以下内容来自维基百科
最大公因数(英语:highest common factor,hcf)也称最大公约数(英语:greatest common divisor,gcd)是数学词汇,指能够整除多个非零整数的最大正整数。例如8和12的最大公因数为4。
可能还是不理解让我们看看下面的例子
54和24的最大公因数是多少?
数字54可以表示为几组不同正整数的乘积:
故54的正约数为1,2,3,6,9,18,27,54
同样地,24可以表示为:
故24的正约数为1,2,3,4,6,8,12,24
这两组数列中的共同元素即为54和24的公因数:
1,2,3,6
其中的最大数6即为54和24的最大公约数,记为:
gcd(54,24)=6
通过上面介绍我们已经知道了以下特征
1.公因数都是整数(即相除没有余数)
2.公因数可以被两个数共同相除
3.“因数”最大为它本身和1.列如27:1和27
故紧靠这两条特征可编写出如下程序
#include<stdio.h>
int main(){
int a,b,z,p=0;
printf("请输入两个整数");
//接受用户输入的两个整数
scanf("%d%d",&a,&b);
//通过for循环遍历
for(int i=1;i<=a;i++){
//通过if判断要满足“公因数可以被两个数共同相除”
if(a%i==0 && b%i==0){
z=i;
}
//判断是否大于默认值p(即仅保留最大值即为最大公因数)
if(z>p){
p=z;
}
}
//打印输出最大值p
printf("%d",p);
return 0;
}