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;

}

相关推荐
我不是疯子是傻子8 小时前
Qt 实时曲线卡顿优化:从QPainter到OpenGL的3级加速实战
开发语言·qt
zlinear数据采集卡8 小时前
D223 ADC数据处理流水线:从原始采样值到工程单位的完整转换链
开发语言·arm开发·嵌入式硬件·fpga开发·开源·c#
小唔w8 小时前
2026年AI培训行业观察:主流学习渠道一览
人工智能·学习
凉茶钱8 小时前
【数据结构】堆的应用
c语言·数据结构
nnerddboy9 小时前
Rust教程04:引用、借用与切片
开发语言·后端·rust
Nan_Shu_6149 小时前
学习:MapVGL 地理信息可视化
学习
皖山文武9 小时前
逻辑代数基础学习笔记--概述
笔记·学习·机器学习
fanged9 小时前
高通学习24--XBL(TODO)
学习
jerryinwuhan9 小时前
《Python数据预处理》第四章
开发语言·python
长江&后浪9 小时前
防火墙的描述
开发语言·网络·php