题目
本题是谭浩强《C程序设计课后习题》题7.1。
题目:
写两个函数, 分别求两个整数的最大公约数和最小公倍数,
用主函数 调用这两个函数, 并输出结果。两个整数由键盘输人。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
1,使用辗转相除法进行求最大公约数:
2,首先确保第一个数最大
3,然后循环条件为第二个数不等于0,循环体内为先求第一个数对第二个数的余数
4,然后第一个数等于第二个数,第二个数等于余数
5,如此往复,循环结束后第一个数中存放的值即为最大公约数
6,最小公倍数等于这俩数的乘积除以最大公约数
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
int max(int m, int n)
{
int r;
if (m < n)//先确保m中存储的为最大数
{
int c = m;
m = n;
n = c;
}
while (n)//辗转相除法求最大公约数
{
r = m % n;
m = n;
n = r;
}
return m;
}
void min(int s1, int s2)
{
printf("最小公倍数为:%d", s1 / s2);//输出最小公倍数
}
void main()
{
int m, n;
printf("请输入2个整数:");
scanf("%d %d", &m, &n);
int s1 = m * n;
int s2=max(m, n);//最大公约数
printf("最大公约数为:%d\n", s2);
min(s1, s2);
}
三、执行结果
输入:
请输入2个整数:25 30
输出:
最大公约数为:5
最小公倍数为:150