C语言练习--给定两个数 ,取最大公约数

给定两个数 ,取最大公约数

暴力求解 效率低

int main()

{

int a = 0;

int b = 0;

scanf("%d %d", &a, &b);

int min = (a < b) ? a : b;

int i = 0;

for (i = min; i > 0; i--)

{

if (a % i == 0 && b % i == 0)

{

printf("有公约数:>%d", i);

break;

}

}

return 0;

}

辗转相除法

int main()

{

int a = 0;

int b = 0;

int c = 0;

scanf("%d %d", &a, &b);

while (c=a%b)

{

a = b;

b = c;

}

printf("最大公约数为 % d",b);

return 0;

}

相关推荐
workflower1 小时前
微软PM的来历
java·开发语言·算法·microsoft·django·结对编程
惊讶的猫1 小时前
c++基础
开发语言·c++
人间乄惊鸿客1 小时前
python — day9
开发语言·python
妮妮喔妮2 小时前
Go的垃圾回收
开发语言·后端·golang
im_AMBER4 小时前
Leetcode 38
笔记·学习·算法·leetcode
向上的车轮4 小时前
无需云服务的家庭相册:OpenHarmony 上的 Rust 实践
开发语言·后端·rust
豐儀麟阁贵5 小时前
4.5数组排序算法
java·开发语言·数据结构·算法·排序算法
Jane-6667776 小时前
C语言——栈与队列
c语言·开发语言
“抚琴”的人6 小时前
C# 取消机制(CancellationTokenSource/CancellationToken)
开发语言·c#·wpf·1024程序员节·取消机制
正经教主6 小时前
【Trae+AI】和Trae学习搭建App_01(附加可略过):测试Trae的后端功能
学习·app