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;

}

相关推荐
程序员小羊!1 分钟前
05 JAVA面向对象
java·开发语言
secret_to_me2 分钟前
buildRoot编译rootfs实战
linux·c语言·c++·ubuntu·电脑·buildroot
MrJson-架构师3 分钟前
AgentScope Java 2.0:打造分布式、企业级智能体底座
java·开发语言·分布式
凡人叶枫3 分钟前
Effective C++ 条款01:视 C++ 为一个语言联邦
linux·开发语言·c++·effective c++·编程范式·语言联邦
我爱吃土豆18 分钟前
Agent 的记忆机制
开发语言·数据库·人工智能
白露与泡影8 分钟前
SEATA:Server 到 Golang Client 全链路走读
开发语言·后端·golang
AOwhisky11 分钟前
MySQL 学习笔记(第五期):用户管理与权限控制
linux·运维·数据库·笔记·学习·mysql
YangYang9YangYan13 分钟前
2026文科生报考大数据类专业学习数据分析的可行性分析
大数据·学习·数据分析
小小龙学IT15 分钟前
Go 后端开发实战:构建高性能 RESTful API 服务
开发语言·golang·restful