C语言:最大公约数。

两个正整数的最大公约数是能够整除这两个整数的最大整数。
请按如下函数原型编写计算最大公约数的函数 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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值