a=g_cd(m,n);

if (m>n) //最小公倍数=较大的数*(较小的数/最大公约数)

{

b=n;

b/=a;

return m*b;

}

else

{

b=m;

b/=a;

return n*b;

}

}

main()

{

int p,r,n,m,temp;

printf("Please enter 2 numbers n,m:");

scanf("%d,%d",&n,&m);//输入两个正整数.

if(n

在m中.

{temp=n;

n=m;

m=temp;

}

p=n*m;//P是原来两个数n,m的乘积.

while(m!=0)//求两个数n,m的最大公约数.

{

r=n%m;

n=m;

m=r;

}

printf("Its MAXGongYueShu:%d\n",n);//打印最大公约数.

printf("Its MINGongBeiShu:%d\n",p/n);打印最小公倍数.

基本原理如下:

用欧几里德算法(辗转相除法)求两个数的最大公约数的步骤如下:

先用小的一个数除大的一个数,得第一个余数;

再用第一个余数除小的一个数,得第二个余数;

又用第二个余数除第一个余数,得第三个余数;

这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。

例如求1515和600的最大公约数,

第一次:用600除1515,商2余315;

第二次:用315除600,商1余285;

第三次:用285除315,商1余30;

第四次:用30除285,商9余15;

第五次:用15除30,商2余0。

1515和600的最大公约数是15。

两个正整数的最小公倍数=两个数的乘积÷两个数的最大公约数

由于两个数的乘积等于这两个数的最大公约数与最小公倍数的积。这就是说,求两个数的最小公倍数,可以先求出两个数的最大公约数,再用这两个数的最大公约数去除这两个数的积,所得的商就是两个数的最小公倍数。

例 求105和42的最小公倍数。

因为105和42的最大公约数是21,

105和42的积是4410,4410÷21=210,

所以,105和42的最小公倍数是210。

#include

void main()

{

int i,j,k;

long m;

printf("please input i,j:\n");

scanf("%d%d",&i,&j);

m=i*j;

if(i

{i=i^j;

j=j^i;

i=i^j;}

while(i%j!=0)

{k=i%j;

i=j;

j=k;}

printf("gcd=%d,lcm=%ld\n",j,m/j);

}

给,已经编译运行确认:

#include

#include

int main()

{

int p,r,n,m,temp;

printf("Please enter 2 numbers n,m:");

scanf("%d %d",&n,&m);//输入两个正整数.

if(n

{

temp=n;

n=m;

m=temp;

}

p=n*m;//P是原来两个数n,m的乘积.

while(m!=0)//求两个数n,m的最大公约数.

{

r=n%m;

n=m;

m=r;

}

printf("最大公约数为: %d\n",n);//打印最大公约数.

printf("最小公倍数为: %d\n&qu

用c语言求最大公约数的流程图,如何用c语言求最大公约数和最小公倍数相关推荐

  1. c语言求矩阵特征值的程序,如何用C语言编写求对称矩阵的特征值和特征向量的程序编写对称矩阵的特征值和特征向量,其中矩阵用二维数组保存.特征向量要求有大到小放到数组里....

    优质解答 //数值计算程序-特征值和特征向量 // //约化对称矩阵为三对角对称矩阵 //利用Householder变换将n阶实对称矩阵约化为对称三对角矩阵 //a-长度为n*n的数组,存放n阶实对称 ...

  2. c语言中自定义函数的流程图这么画,C语言问题:有函数调用的流程图怎么画?

    传统 C++ #include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> // ...

  3. 用c语言写一个两线程程序,如何用C语言实现多线程

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Windows操作系统,C语言实现多线程: #include #include DWORD APIENTRY ThreadOne ( LPVOID thr ...

  4. 如何用c语言读取硬盘串号_如何用C语言实现OOP

    我们知道面向对象的三大特性分别是:封装.继承.多态.很多语言例如:C++和Java等都是面向对象的编程语言,而我们通常说C是面向过程的语言,那么是否可以用C实现简单的面向对象呢?答案是肯定的!C有一种 ...

  5. C语言中字符数据超过127,如何用C语言显示ascii码超过127的字符

    C语言的程序代码如下: #include "stdio.h" main() {inti; for (i=1;i<256;i++) { printf("%c &quo ...

  6. c语言 排课系统 利用栈,如何用c语言去实现排课系统的开发,

    排课系统的开发是基于遗传算法的这里有遗传算法框架,可运行的!!就是不懂得排课系统的分析需求!如何改造适应度函数,求高手指点-- #include #include #include #include ...

  7. c语言实现文件数据删除视频,如何用c语言实现删除文件中指定的数据;例如

    匿名用户 1级 2012-05-21 回答 你的描述不清晰,B1和B2两个结构数组,到底要删除哪个?B[2]是肯定不对的,这两个数组的长度都是2,下标只能是0和1,即B1[0], B1[1], B2[ ...

  8. 用c语言编写名字用字母表示,如何用C语言编写自己的姓名和学号

    可以参考下面的代码:#include<stdio.h>#include<stdlib.h>intmain(void){FILE*fp=fopen("data.txt& ...

  9. c语言二进制数以字符形式输出,如何用C语言输出二进制数据

    二进制2113数字不能像小数一样直接输出为%d. 如果要输出5261二进制数printf输出格式 二进制,可以使用函数4102将其转换为二进制字符串,然后在1653中输出. itoa函数 原型: ch ...

最新文章

  1. Go 学习笔记(72)— Go 第三方库之 pkg/errors 带堆栈的错误处理
  2. 更新windows SID工具,对于虚拟机复制很有用
  3. linux正则表达式BRE
  4. CloudStack基本概念-Zone,Pod,Cluster,Host
  5. [转]c#调用API截图
  6. ConstraintLayout 学习笔记
  7. micropython 网络驱动_network_网卡驱动
  8. 01-subgradients_notes
  9. 两难!先更新数据库再删缓存?还是先删缓存再更新数据库?
  10. kcp 介绍与源代码分析_Mendel:基于遗传隐喻的源代码推荐
  11. [LeetCode]Remove Nth Node From End of List
  12. App后台开发运维和架构实践学习总结(5)——App产品从需求到研发到开发到上线到产品迭代全过程
  13. python3 中bytes与str类型
  14. 软景php,你不得不知的软景配置标准
  15. 计算机数值方法第三版答案百度云,数值计算方法课后习题答案(李庆扬等)..doc...
  16. Devexpress WPF教程
  17. mysql jemalloc_jemalloc优化MySQL、Nginx内存管理
  18. android cs bs 架构,BS架构与CS架构的区别
  19. Openbravo ERP介绍
  20. 期货基础知识(竞价,定价,保证金计算)

热门文章

  1. 好的PPT——准备工作
  2. Cocos2dx中零散知识点
  3. Frida Android hook
  4. Spring Data JPA 从入门到精通~实际工作的应用场景
  5. 数据安全架构设计与实战~如何加密结构化数据
  6. android applybatch,android – 使用applyBatch插入成千上万的联系人条目很慢
  7. mysql按字段同步_MySQL同步(一) 基础知识
  8. python手绘教学_Python实现手绘功能
  9. java算法实验标尺问题_在codeigniter项目中使用标尺库
  10. python变量声明语句_python – 在条件语句中声明变量有问题吗?