#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)