【算法】求最大公约数

2015-03-10 21:51:32 -0400
问题:求两个自然数的最大公约数。 这两个都是基础的数学问题,最大公约数指两个数字公共的约数中最大的,例如数字6的约数有1、2、3、6,数字9的约数有1、3、9,则数字6和数字9的公共约数有1和3,其中3是最大的公约数。
实现代码如下:
#include <stdio.h>
int zdgys(int,int);
int main(void)
{
printf("%d",zdgys(18,9));
return 0;
}

int zdgys(int a,int b)
{
int zdgys=0;
int n=0;
int max;
max=a;
if(b>max)max=b;
while(n++<=max)
{
//这里求公约数
//大的公约数将会替换小的公约数数
if(a%n==0&&b%n==0)
zdgys=n;
}
return zdgys;
}
输出结果:9
算法原创,如发现错误,欢迎指出。
«Newer      Older»

----Comments(2)----
落叶似秋 (@zyw8) | @ at 2015-03-11 00:32:
@wjt 百度一下你就知道
万老板 (@wjt) | @ at 2015-03-10 22:16:
什么事公约数
Comment:
Name:

Back to home

Subscribe | Register | Login | 中文 | N