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;

}

相关推荐
gjxDaniel几秒前
Bash编程语言入门与常见问题
开发语言·bash
zhooyu2 分钟前
OpenGL 与 C++:深入理解与实现 Transform 组件
开发语言·c++
张心独酌2 分钟前
学习Rust:实现RESTful 任务管理 API(Todo API)
学习·rust·restful
captain37617 分钟前
Java-链表
java·开发语言·链表
tqs_1234518 分钟前
跳出多层循环的方式
java·开发语言
froginwe1123 分钟前
媒体查询:现代网页设计的核心工具
开发语言
反向跟单策略25 分钟前
如何正确看待期货反向跟单策略?
大数据·人工智能·学习·数据分析·区块链
QiZhang | UESTC27 分钟前
学习日记day65
学习
AI科技星31 分钟前
光的几何起源:从螺旋时空到量子现象的完全统一
开发语言·人工智能·线性代数·算法·机器学习
Word码36 分钟前
[C++语法]-string类(用法详解及实现)
开发语言·c++