C++编写程序求两个数最大公因数和最小公倍数

C++编写程序求两个数最大公因数和最小公倍数

方法一:辗转相除法:
首先判断m是否小于n,不然交换两个值,始终保持m永远是最大的值,求余d=m%n,判断余数是否为0如过为0,则最大公因数为n,否则m=n;n=d;接着求余直到余数d为0,此时最大公因数为n。
方法二:相减法:
如果m,n相等,最大公因数为两个数的任何一个,否则当m>n时,m=m-n,n>m时,n=n-m,一直减到m=n时输出max等于m,n两个数任何一个。
方法三:穷举法
首先保持第一个数为最大的值否则交换两个值,令i=m,开始递减,直到m和n同时除以i为0,此时输出最大公因数为max=i。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-06-19
公因数,求模取余法。
while(1)
{
if(a>b) a=a % b;
else
b=b%a;
if(a==0) return b;
if(b==0) return a;
}
最小公倍数= 两数之积 / 最大公因数本回答被网友采纳
第2个回答  2018-06-19
和最小公倍数

c++编写一个求两个整数最大公约数和最小公倍数的函数
编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它。C语言实现代码如下:include<stdio.h> include<math.h> int fun_gy(int,int); \/\/声明最大公约数函数 int fun_gb(int,int); \/\/声明最小公倍数函数 main(){ int a,b,gy,gb;printf("输入两个...

...的两个正整数m和n,求其最大公约数和最小公倍数.
c++也可以使用scanf和printf来输入输出,并且比较不易出错,最大公约数使用欧几里德辗转相除法伪代码如下:c=m mod nwhile c!=0 do {m=n n=c c=m mod n}print(n) 而最小公倍数就是m*n\/gcd(m,n)

C++编写程序。输入两个正整数,求它们的最大公约数和最小公倍数。
int ji = num1*num2;if(num1<num2) \/*保证第一数是较大的值*\/ {temp=num1;num1=num2;num2=temp;}

两个整数的最小公倍数与最大公因数(C++实现)
最小公倍数(lcm(m, n))可以通过将两个数相乘再除以最大公因数来计算,即lcm(m, n) = (m * n) \/ gcd(m, n)。在C++中,实现这个过程的代码如下:cpp int gcd(int m, int n) { if (n == 0) return m;return gcd(n, m % n);} int lcm(int m, int n) { int temp = ...

C++求两个整数的最大公约数和最小公倍数,要求用调用一次函数的方法和函...
int b){ if(a%b==0){ printf("最小公倍数是:%d\\n",a);printf("最大公约数是:%d\\n",b);} if(a%b!=0){ int c,d;d=a*b;while(a%b!=0){ c=a%b;a=b;b=c;} a=d\/b;printf("最小公倍数是:%d\\n",a);printf("最大公约数是:%d\\n",b);} } 函数的嵌套......

C++编程 输入两个正整数m和n,求其最大公约数和最小公倍数
int i=1;i<min;i++) { if(m%i==0&&n%i==0) { temp1=i; } } cout<<"公约数:"<<temp1<<endl; \/\/公倍数问题 temp2 = m * n \/ temp1; cout<<"公倍数:"<<temp2<<endl; return 0;} ...

用C++编写函数求两个整数的最大公约数和最小公倍数
include<stdio.h>int max(int a,int b){ \/\/求最大公约数的函数 int i,k; for(i=1;i<=(a>b?b:a);i++) if(a%i==0&&b%i==0) k=i; return k;}int min(int a,int b){ \/\/求最小公倍数的函数 int c,d,i; c=a>b?b:a; \/\/大的 d=...

C++编程:求两正整数的最大公约数和最小公倍数,用一个函数求最大公约数...
printf("最大公约数为:%d\\n",b);printf("最小公倍数为:%d\\n",m*n\/b);} else { printf("你输入的数据不合法,退出请输入0,重新计算请输入1!");goto scan;} printf("退出请输入0,重新计算请输入1!");scan: scanf("%d",&judge);}while(judge!=0);system("pause");return 0;...

c++编程,输入两个正整数,输出它们的最大公约数和最小公倍数。
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;} ...

...分别求两个整数的最大公约数和最小公倍数,并在main()函数中任意...
int M=1;M<=x;M++) { if(x%M==0 && y%M==0) { n=M; } } }else{ for(int N=1;N<=y;N++) { if(x%N==0 && y%N==0) { n=N; } } }cout<<"最大公约数为:"<<n<<endl;}void f2(int x,int y){ int z;if(x<y)...

相似回答