欢迎来到南方有乔木的博客!!!
博主主页:
点击点击!戳一戳!!
博主名:
南方有乔木呀
博主简介:
一名在校大学生,正在努力学习Java语言编程。
穷且意坚,不坠青云之志
,希望能在编程的世界里找到属于自己的光。
跪谢帅气or美丽的朋友们能够帮我点赞! 请对文中内容请多多指教!!!
问题:求两个整数的最大公约数
解题思路:
首先,我们先来复习一下什么是最大公约数。
最大公约数:两个或多个整数中共有约数中最大的一个。
在这里我们只求两个整数里的最大公约数,举个例子:
比如6和12,它们都能够被1,2,3,6整除,它们的相同的公约数里有1,2,3,6,它们最大公约数就是6.
它的核心思想主要是:求两个整数里同时能够被这两个数整除的数的最大值。(比如6和12,6是这两个整数同时能够整除的最大值)
求两个数的最大公约数思路主要分为:
1.求两个整数里的较小值
(比如变量a=6和变量b=12,先求出这两个整数里较小的值为变量a=6)
2.让一个数满足同时能够被两个整数整除,然后求出它的最大值
。这个最大值小于或等于整数里的较小值。(比如6和12,它们的最大公约数为6,满足小于或等于6),
满足条件打印一次后跳出循环。
实现代码如下代码:
#include <stdio.h>
int main()
{
int a; b;i,min;
printf("请输入两个整数:");
scanf("%d%d",&a,&b);
if(a>b)
{
min=b;//先求出两个整数里的较小值
}
else{
min=a;
}
for(i=min;i>1;i--)//从两个整数里的较小值开始遍历,注意i由大到小用i--
{
if(a%i==0&&b%i==0)//如果两个整数同时被整除则打印输出
{
printf("最大公约数;%d",i);
break;//打印一次后记得跳出循环
}
}
system("pause");
return 0;
}
具体运行结果如下: