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

 

/*
⑴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 @ 2007-01-13 10:38  齐心  Views(3013)  Comments(0Edit  收藏  举报