求两个正整数的最大公约数?

原创 2006年06月21日 11:30:00

给定两个正整数,求它们的最大公约数,对于这个算法想必大家都已经知道,解决这个问题最经典的方法是采用欧几里德算法,据说这是历史上最早的算法。
          
                     
#include <stdio.h>
#include <stdlib.h>
 
#define max(a,b)   (a) > (b) ? (a) : (b)
#define min(a,b)   (a) < (b) ? (a) : (b)
    
/*
INPUT: m,n (m >0 ,n>0)
OUTPUT: -1 error, else the common divisor of m and n
*/
int G*C*D(int m,int n)
{
     int a = max(m,n);
     int b = min(m,n);
     int remainder = 1;
     if( m<=0 || n<=0 )
     {
         return -1;
     }
     while(remainder > 0)
     {
         remainder = a % b;
         a = b;
         b = remainder;
     }
     return a;
}
      
int main(int argc, char* argv[])
{
     int first,second,result;
     if(argc != 3)
     {
         fprintf(stderr,"There should be two number/n");
         exit(-1);
     }
     first = atoi(argv[1]);
     second = atoi(argv[2]);
     result = G*C*D(first,second);
     if(result != -1)
     {
         printf("The common divisor of %d and %d is %d/n",first,second,result);
     }
     else
     {
         printf("m and n should be greater than 0/n");
     }
     return 0;
}

给定两个数m,n,使用欧几里得的辗转相除法求出它们的最大公约数

s0 segment m dw 5 n dw 15 s0 ends s1 segment stack dw 100 dup(?) top label word s1 ends ...

VB 求两个正整数的最大公约数

  • 2010年06月07日 13:53
  • 37KB
  • 下载

求两个正整数的最大公约数

基本要求:从键盘输入两个整数,输出两个整数的最大公约数。用C或C++语言实现程序解决问题。 1.      程序风格良好(使用自定义注释模板) 2.      使用三种算法解决问题 3.      提...

求两个正整数的最大公约数和最小公倍数

最近做题遇到一算法题,让求两个正整数的最大公约数和最小公倍数,一想,只要求出两个数的公共质因子就可以求出来了最大公约数了,然后再用两数的积除以最大公约数就可以得到最小公倍数了。 可是当数比较大时,消...
  • henulwj
  • henulwj
  • 2013年04月24日 22:27
  • 3381

从键盘输入两个正整数,求它们的最大公约数和最小公倍数

//求两个正整数的最大的公约数和最小公倍数 #include #include int k=1;void divide(); void subtract(); void enumerate(); v...
  • hhejing
  • hhejing
  • 2017年03月22日 21:11
  • 816

求两个正整数的最大公约数

解法一:根据定义,a与b的最大公约数是指能同时整除a与b的最大整数: #include int main() { int num1 = 18; int num2 = 26; int com ...

求两个正整数的最大公约数GCD

1.目的: 从键盘输入两个数,输出两个正整数的最大公约数,用c语言实现。 2.算法设计思路: GCD常见算法有辗转相除法,更相减损术法,穷举法,Stein算法,本次采用3种方法,进行代码的实现。 ...

Java小程序:辗除法求两个正整数最大公约数和最小公倍数

Java:辗除法求两个正整数最大公约数和最小公倍数
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求两个正整数的最大公约数?
举报原因:
原因补充:

(最多只允许输入30个字)