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;

}

相关推荐
BeiGuTing_code3 分钟前
Java泛型与Object
java·开发语言
another heaven3 分钟前
【C/C++ C++ 面向对象架构的五大特点与能力场景:封装、继承、多态、抽象与 RAII(含实战案例)】
c语言·c++·架构
叶子野格4 分钟前
《JAVA学习:前置知识》
学习
2401_872418787 分钟前
互联网公开信息检索完全指南:Google、Yandex、Wayback Machine、DNS、WHOIS、Shodan 等 OSINT 工具大全
开发语言·php
HEJOO99 分钟前
Java 类加载过程详解:从加载到初始化的完整链路
java·开发语言·firefox
hahaha601617 分钟前
数字图像锐化
开发语言·python
科学熊19 分钟前
Java 分布式理论与高并发编程
java·开发语言·分布式
普贤莲花27 分钟前
先学Workbuddy还是“人工智能训练师”,或者python基础课?
开发语言·人工智能·python
星之擎29 分钟前
Task 很优雅的取消方式是什么?C# 里面。
开发语言·c#
小猪佩奇TONY31 分钟前
Linux 内核学习(19) --- linux swap 机制
linux·学习·swap·kswapd