用辗转相除法求两个正整数的最大公约数

 

/*
⑴a除以b,余数存于r;
⑵如果r不为0,则将b的值赋给a,r的值赋给b,重复⑴;否则执行⑶
⑶输出a的值,它就是最大公约数。
*/

#include 
<stdio.h>
#include 
<conio.h>
int divisor(int,int);
void main()
{
 clrscr();
 
int a,b,d;
 scanf(
"%d,%d",&a,&b);
 
if (a>b)
   d
=divisor(a,b);
 
else
   d
=divisor(b,a);
 printf(
"a=%d,b=%d\n",a,b);
 printf(
"d=%d",d);
}


int divisor(int a,int b)
{
 
int r;
 
do
 
{
  r
=a%b;
  a
=b;
  b
=r;
  }
while(r!=0);
  
return a;
}
posted @   齐心  Views(3018)  Comments(0Edit  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!
点击右上角即可分享
微信分享提示