pxlt.net
当前位置:首页>>关于c语言编程求输入两个数的最大公约数和最小公倍数,怎么做?的资料>>

c语言编程求输入两个数的最大公约数和最小公倍数,怎么做?

输入两个正整数m和n,求其最大公约数和最小公倍数.用辗转相除法求最大公约数 算法描述:m对n求余为a,若a不等于0 则 m 0) { m_cup = m;#include <stdio.h> void main () { int m,n,m1,n1,t; printf ("请输入两个数(用空格隔开):");

#include void main() { int m,n,k,min,max,i; scanf("%d%d",&m,&n); if(n { k=n; n=m; m=k; } for(i=m;i>0;i++) { if((m%i==0)&(n%i==0)) { max=i; break; } } min=m*n/max; printf("%d和%d的最大公约数是%d\n",m,n,max); printf("%d和%d的最小公倍数是%d\n",m,n,min); } 这个是我的程序,其中利用了最小公倍数是两个数的乘积除以最大公倍数,希望能够帮到你.

#include<stdio.h> int main() { int m,n,temp,i; scanf("%d%d",&m,&n); if(m>n) { temp=n; n=m; m=temp; } for(i=m;i>=1;i--) { if(m%i==0&&n%i==0) { printf("最大公约数为%d,最小公倍数为%d\n",i,m*n/i); break; } } return 0; }

你可以编写一个程序,实现辗转相除法(欧几里得算法),来求得最大公约数,然后用两个数相乘再除以最大公约数来,得到最小公倍数. #include <stdio.h> int main() { int a, b, c; //a, b就是M和N,c是余数 int ta, tb; //用来记录a,b的临时值 int

#include<stdio.h> int main(void) { int m,n,i,j; printf("请输入两个正整数"); scanf("%d%d",&m,&n); i=(m>n?n:m); while(!(m%i==0&&n%i==0)) { i--; } printf("最大公约数:%d\n",i); j=(m>n?m:n); while(!(j%m==0&&j%n==0)) { j++; } printf("最小公倍数:%d\n",j); return 0; }

#include main() { int m,n,r; printf("请输入两个数字:"); scanf("%d%d",&m,&n); while(r!=0) { m=n; n=r; r=m%n; } printf("两个数字的最大公约数为%d\n",n); getch(); } 这个算法就是把你初中算最大公约数的过程给程序化了..你用以前的方法在纸上算算最大公约数 再对照WHILE里面的算法 就能明白咋回事了..

求最大公约数用辗转相除法,原理网上随便一搜就有.最小公倍数则等于两数的积再除以最大公约数.

这样写: #include <stdio.h> void main(){int m,n,i,r,temp;printf("请输入第一个数的值: ");scanf("%d",&m);printf("请输入第二个数的值: ");scanf("%d",&n);if(n>m){temp=m;m=n;n=temp;}i=n;while(i%m!=0){i=i+n;}printf("最小公倍数是:%d \n",i);r=m%n;while(r!=0){m=n;n=r;r=m%n;}printf("最大公约数是:%d \n",n);} 图:

直接编写两个函数就行了!!#include int yueshu(int m,int n) { int t; if(m>n) t=m,m=n,n=t; //替换,保证m为较大的数 while(n!=0) { t=m%n; m=n; n=t; } return m; } int beishu(int m,int n) { return m*n/yueshu(m,n); //最小公倍数即为两个数的

这样写: #include void main() { int m,n,i,r,temp; printf("请输入第一个数的值: "); scanf("%d",&m); printf("请输入第二个数的值: "); scanf("%d",&n); if(n>m) { temp=m; m=n; n=temp; } i=n; while(i%m!=0) { i=i+n; } printf("最小公倍数是:%d \n",i); r=m%n; while(r!=0) { m=n; n=r; r=m%n; } printf("最大公约数是:%d \n",n); } 图:

网站首页 | 网站地图
All rights reserved Powered by www.pxlt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com