两个正整数的最大公约数是能够整除这两个整数的最大整数。
请按如下函数原型编写计算最大公约数的函数 Gcd()。
int Gcd(int a, int b);
在主函数中调用该函数计算,并输出从键盘任意输入的两整数的最大公约数。
要求输入提示信息为: “Input a,b:\n”
要求输入格式为: “%d,%d”
要求输出格式为
如果 a 或 b 不是正整数,输出: “Input number should be positive!\n”
否则输出: “Greatest Common Divisor of %d and %d is %d\n”
注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用 int main 和 return 0。
#include <stdio.h>
int Gcd(int a, int b);
main()
{
int a, b, c;
printf("Input a,b:\n");
scanf("%d,%d", &a, &b);
c = Gcd(a, b);
if (c != -1)
{
printf("Greatest Common Divisor of %d and %d is %d\n", a, b, c);
}
else
{
printf("Input number should be positive!\n");
}
}
int Gcd(int a, int b)
{
int i, t;
if (a <= 0 || b <= 0)
{
return -1;
}
t = a < b ? a : b;
for (i = t; i > 0; i--)
{
if (a % i == 0 && b % i == 0)
return i;
}
return 1;
}