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

原创 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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

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

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

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

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

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

//*********求两个正整数的最大公约数问题*********** //作者:高双 //版本:v1.0 //创建时间:2017年3月17日 //主要功能: //(1)辗转相除法: ① a%b得余...

黑马程序员——java基础——练习题:键盘输入两个正整数求两个数的最大公约数和最小公倍数

android培训、java培训期待与您交流! 练习题:键盘输入两个正整数求两个数的最大公约数和最小公倍数 公约数:几个数公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数...

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

辗除法又叫欧几里得算法。 算法原理是: gcd(m,n)其中m,n为正整数,且m>n,表示m,n的公约数。 gcd(n,r)其中r=m- n*q,r即是r=m%n。 证明gcd(m,n)=gc...

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

输入两个正整数,求它们的最大公约数和最小公倍数。 package demo40; import java.util.ArrayList; import java.util.List; im...

[c++]求两个正整数的最大公约数

使用了三种算法(辗转相除法、辗转相减法、穷举法) 程序的算法部分使用了递归,这样程序会看起来更简练一些。 在使用递归的时候也遇到了一些问题,不过好在已经都解决了。代码如下://创建时间:2017年...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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