C语言程序设计(第三版)何钦铭著 习题4-7

C语言程序设计(第三版)何钦铭著 习题4-7

习题一览表
1. C语言程序设计(第三版)何钦铭著 习题2-1
2.C语言程序设计(第三版)何钦铭著 习题2-2
3.C语言程序设计(第三版)何钦铭著 习题2-3
4.C语言程序设计(第三版)何钦铭著 习题2-4
5.C语言程序设计(第三版)何钦铭著 习题2-5
6.C语言程序设计(第三版)何钦铭著 习题2-6
7.C语言程序设计(第三版)何钦铭著 习题3-1
8.C语言程序设计(第三版)何钦铭著 习题3-2
9.C语言程序设计(第三版)何钦铭著 习题3-3
10.C语言程序设计(第三版)何钦铭著 习题3-4
11.C语言程序设计(第三版)何钦铭著 习题3-5
12.C语言程序设计(第三版)何钦铭著 习题4-1
13.C语言程序设计(第三版)何钦铭著 习题4-2
14.C语言程序设计(第三版)何钦铭著 习题4-3
15.C语言程序设计(第三版)何钦铭著 习题4-4
16.C语言程序设计(第三版)何钦铭著 习题4-5
17.C语言程序设计(第三版)何钦铭著 习题4-6


题目

求最大公约数和最小公倍数。
输入两个正整数 m 和n(m≤1 000,n≤1 000),
求其最大公约数和最小公倍数。试编写相应程序。


分析过程

输入

条件:输入两个正整数 m 和n(m≤1 000,n≤1 000)

输出

条件:输出最大公约数和最小公倍数

分析

最大公约数=两数之积/最小公倍数,所以关键是求出最大公约数和最小公倍数中的一个
计算最大公约数的方法可以使用辗转相除法。
辗转相除法:
两整数a和b
a%b得余数c
若c=0,则b即为两数的最大公约数
若c≠0,则a=b,b=c,再回去执行
例如求35和15的最大公约数过程为:
35÷15 余5,,15÷5余0,5即为最大公约数

代码

#include <stdio.h>
#include <math.h>

int main () {
    
    
	/*定义变量*/
	int m,n;                                                                    /*定义变量,存储输入的正整数m,n*/
	int a,b;                                                                    /*定义变量,辗转相除法中的两个数a,b*/
	
	/*赋值*/
	printf("请输入正整数m,n:\n");                                              	/*输入提示*/
	scanf("%d %d \n", &m, &n);                                                  /*输入并赋给变量*/
	/*将m和n中较大的数赋值给a,较小的数赋值给b*/
	if(m>n){
    
    
	    a=m;
	    b=n;
	}else {
    
    
	    a=n;
	    b=m;
	}
    /*计算*/
    int temp = a%b;/*求m%n的余数*/
    while(temp){
    
    /*若余数不为0,则将b的值赋给a,将a%b的余数赋值给b,继续进行运算;直至余数为0*/
        a=b;
        b=temp;
        temp = a%b;
    }
    printf("%d %d\n",b,m*n/b);
    
	return 0;
}

运行结果

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43228814/article/details/112364768