您的位置:首页 > 其它

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

2014-07-17 23:35 169 查看
#include<stdio.h>
#include<stdlib.h>
void Compare(unsigned int *num_a, unsigned int *num_b);
unsigned int GetGCD(unsigned int num_a, unsigned int num_b);
int main()
{
unsigned int num_a, num_b;//input integer a,b
unsigned int num_gcd;//the remainder of each division
printf("*******Get Greatest Common Divisor*******\n");
printf("Please input positive integer:\na=");
scanf("%d", &num_a);//input num_a firstly
printf("b=");
scanf("%d", &num_b);//input num_b secondly
Compare(&num_a, &num_b);//compare num_a and num_b to ensure num_a is the large number
num_gcd=GetGCD(num_a, num_b);
printf("Greatest Common Divisor Between %d and %d is %d\n", num_a, num_b, num_gcd);
return EXIT_SUCCESS;
}
void Compare(unsigned int *num_a, unsigned int *num_b)
{
unsigned int temp;
if (*num_a < *num_b)//if num_a is smaller than num_b, then change them
{
temp = *num_a;
*num_a = *num_b;
*num_b = temp;
}
}
unsigned int GetGCD(unsigned int num_a, unsigned int num_b)
{
unsigned int num_mod=1;
num_mod = num_a %num_b;
while (0 != num_mod)//judge whether the number is the GCD
{
num_a = num_b;
num_b = num_mod;
num_mod = num_a %num_b;
}
return num_b;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: