C++实现输入两个正整数m和n,求其最大公约数和最小公倍数?

如题所述

#include "stdio.h"

void main()

{

int m,n,i,c;

printf("请输入两个正整数\n");

scanf("%d %d",&m,&n);

c = m < n ? m : n ;             // 取m n 中较小的数,赋值给c //

for(i = 2 ; i <= c ; i++)        

{

if( m % i == 0 && n % i == 0)

{

printf("m 与 n 的最大公约数为%d,",i);

break;

}

}

if(i == c+1)

printf("没有最大公约数 ");

c = m > n ? m : n ;           // 取 m n 中较大的数,赋值给c //

for (i = c ; i <= m*n; i++)

{

if ( i % m ==0 && i % n ==0)

{

printf("最小公倍数为%d.\n",i);

break;

}

}

}

扩展资料:

总结

1)两个数求最大公约数,分别把两个数除以i取余数等于0,这是i就是这个两个数的

最大公约数,i从2开始递增到mn中较小的那个数。若递增到mn中较小的数,仍除不出来。

则没有最小公倍数。

2求两个数最小公倍数,把mn中较小的数赋值给i。i自增到m*n(因为必定存在一个公倍数为m*n)

若mn都满足除i取余数都等于0说明,i是mn的倍数。输入出mn程序结束。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-08-15
#include <iostream>
using namespace std;
int main()
{
int a, b;

cout << "输入两个数:" << endl;
cin >> a >> b;
int temp, num1, num2;
if(a < b)
{
temp = a;
a = b;
b = temp;
}
num1 = a;
num2 = b;
while(num2 != 0)
{
temp = num1 % num2;
num1 = num2;
num2 = temp;
}
cout << "最大公约数为:" << num1
<< " 最小公倍数为:" << (a * b) / num1 << endl;
return 0;
}本回答被网友采纳
第2个回答  2019-09-09
//输入的两个数请用空格分隔,如:12
18
#include

int
main()
{
int
p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d%d,",&n,&m);
if
(n

评论
0

0

加载更多

C++实现输入两个正整数m和n,求其最大公约数和最小公倍数?
{ int m,n,i,c;printf("请输入两个正整数\\n");scanf("%d %d",&m,&n);c = m < n ? m : n ; \/\/ 取m n 中较小的数,赋值给c \/\/ for(i = 2 ; i <= c ; i++){ if( m % i == 0 && n % i == 0){ printf("m 与 n 的最大公约数为%d,",i);break;...

C++实现输入两个正整数m和n,求其最大公约数和最小公倍数
num1 = num2;num2 = temp;} cout << "最大公约数为:" << num1 << " 最小公倍数为:" << (a * b) \/ num1 << endl;return 0;}

...的两个正整数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++输入两个正整数m和n 求其最大公约数和最小公倍数
int m,n,rem=1;cin >> m >> n;\/\/输入两个数 int a= m,b=n;\/\/保留两个数 while(rem!=0){ rem=m%n;m=n;n=rem;} cout << "最大公约数为:" << m << endl;cout << "最小公倍数为:" << a*b\/m << endl;return 0;} ...

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++语言题目:输入两个正整数m和n,求其最大公约数和最小公倍数.
printf("最小公倍数是:%d\\n",min_num(a,b));printf("最大公约数是:%d\\n",max_num(a,b));}\/\/这个函数用于求最小公倍数int min_num(int x,int y){ int i,m;m = x>y?x:y;for(i = m;;i++){ if(i%x==0 && i%y==0)break;} return i;}\/\/这个函数用于求最大公约...

c++语言、输入两个正整数m和n,求其最大公约数和最小公倍数。
h> int main(){ int a,b,t,r;printf("请输入两个数字:\\n");scanf("%d %d",&a,&b);if(a

c++输入两个正整数求它们的最大公约数和最小公倍数。
if(m%j==0 && n%j==0) break; } return j;}int main(){ int m,n; cin>>m>>n; cout<<m<<"和"<<n<<"的最大公约数为:"<<getMax(m,n)<<endl; cout<<m<<"和"<<n<<"的最小公倍数为:"<<getMin(m,n)<<endl;} ...

C++. 输入两个正整数m n求其最大公约数和最小公倍数。希望写具体...
num1, num2;if(a < b){ temp = a;a = b;b = temp;} num1 = a;num2 = b;while(num2 != 0){ temp = num1 % num2;num1 = num2;num2 = temp;} cout << "最大公约数为:" << num1 << " 最小公倍数为:" << (a * b) \/ num1 << endl;return 0;} ...

两个整数的最小公倍数与最大公因数(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 = ...

相似回答