求两个非负整数最大公约数

#C语言实现计算两个非负整数最大公约数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

需求:给出两个非负整数p,q;求两个数的最大公约数。


C代码实现

#include<stdio.h>
int gcd(int, int);

int main()
{
    int p, q;
    scanf_s("%d%d", &p, &q);
    int m = gcd(p, q);
    printf("%d", m);
    return 0;
}

int gcd(int p, int q)
{
    if(q==0)
    {
        return p;
    }
    else
    {
        int r=p%q;
//        q = r;
        return gcd(q, r);
    }
}

python代码实现

注意输入时,需要按照需求输入两个合法数字,这里旨在实现基础功能,有兴趣可以拓展加入校验功能

def gcd(p, q):
    if q == 0:
        return p
    else:
        r = p % q
        return gcd(q, r)


if __name__ == "__main__":
    input_str = input("请输入多个数字,使用空格分割: ")  # 输入数字自动转换为字符串类型
    str_split = input_str.split()  # 分割为单个字符串
    num_list = [int(num) for num in str_split]
    p = num_list[0]
    q = num_list[1]
    m = gcd(p, q)
    print(m)

    # num_tuple = tuple(num_list)  # 测试用,忽略

    # num_tuple1 = (int(num) for num in str_split)  # 返回生成器
    # for i in num_tuple1:
    #     print(i)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值