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;

}

相关推荐
csbysj20204 分钟前
Chart.js 饼图:全面解析与实例教程
开发语言
浩瀚地学11 分钟前
【Java】常用API(二)
java·开发语言·经验分享·笔记·学习
程序员小寒12 分钟前
从一道前端面试题,谈 JS 对象存储特点和运算符执行顺序
开发语言·前端·javascript·面试
七夜zippoe22 分钟前
事件驱动架构:构建高并发松耦合系统的Python实战
开发语言·python·架构·eda·事件驱动
古城小栈29 分钟前
Rust Trait 敲黑板
开发语言·rust
chao_6666661 小时前
解决 PowerShell 中文乱码问题
网络·学习·powershell
喵了meme1 小时前
Linux学习日记24:Linux网络编程基础
linux·网络·学习
BullSmall1 小时前
《庄子》导读
学习
HL_风神1 小时前
设计原则之迪米特
c++·学习·设计模式
FL171713141 小时前
MATLAB的Sensitivity Analyzer
开发语言·matlab