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;

}

相关推荐
qq_172805595 分钟前
RUST学习教程-安装教程
开发语言·学习·rust·安装
wjs202413 分钟前
MongoDB 更新集合名
开发语言
monkey_meng16 分钟前
【遵守孤儿规则的External trait pattern】
开发语言·后端·rust
一只小小汤圆20 分钟前
opencascade源码学习之BRepOffsetAPI包 -BRepOffsetAPI_DraftAngle
c++·学习·opencascade
虾球xz28 分钟前
游戏引擎学习第20天
前端·学习·游戏引擎
LateBloomer77737 分钟前
FreeRTOS——信号量
笔记·stm32·学习·freertos
legend_jz41 分钟前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
Komorebi.py42 分钟前
【Linux】-学习笔记04
linux·笔记·学习
tangliang_cn1 小时前
java入门 自定义springboot starter
java·开发语言·spring boot
程序猿阿伟1 小时前
《智能指针频繁创建销毁:程序性能的“隐形杀手”》
java·开发语言·前端