求两个数最大公约数
公约数,亦称"公因数"。它是指能同时整除几个整数的数。如果一个整数同时是几个整数的约数,称这个整数为它们的"公约数";公约数中最大的称为最大公约数。
例如 :4的倍数有 1,2,4;6的倍数有1,2,3,6,那么4和6的约数就是1,2,则最大公约数就是2.
求解思路:
求最大公约数可以使用欧几里得算法,也称辗转相除法。该算法的基本思想是用较大数除以较小数,然后用余数去除除数,再用上一次的除数去除上一次的余数,如此反复,直到余数为零时,当前除数即为最大公约数。
1 #pragma warning(disable:4996) 2 #include<stdio.h> 3 int a = 0, b = 0, c = 0; 4 int main() { 5 printf("输入两个数\n"); 6 7 scanf("%d%d", &a, &b); 8 while (a!=b) 9 { 10 if (a>b) 11 { 12 a = a - b; 13 } 14 else 15 { 16 c=a; 17 a=b; 18 b=c; 19 } 20 } 21 printf("最大公约数是:%d", a); 22 return 0; 23 }
解法二
#pragma warning(disable:4996) #include<stdio.h> #include<stdbool.h> int main() { int a = 0, b = 0; int v = 0; scanf("%d %d", &a, &b); do { if (a > b) { if (a != 0 && b !=0) { a = a % b; printf("a的%d\n", a); printf("b的%d\n", b); if (a == 1) { printf("最大公约数是%d\n", a); break; } } else { printf("最大公约数是%d\n", a); break; } } else { v = a; a = b; b = v; } } while (true); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架