输入两个正整数m和n,求其最大公约数和最小公倍数。c++

如题所述

第1个回答  2012-01-06
设计两个函数,分别求这两个整数的最大公约数和最小公倍数
#include<iostream>
using namespace std;
int yueshu(int a,int b){ //定义最大公约数
int c,d;
if(a>=b)c=b;d=a;
if(a<b)c=a;d=b; //求a,b中的最小值和最大值,并将其分别赋给c和d
for(;d%c!=0||a%c!=0;){c--;} //c不断减1,直到c同时被a,b整除
return c;}
int beishu(int a,int b){ //定义最小公倍数
int c;
c=yueshu(a,b);
a/=c;
b/=c;
return a*b*c;} //最小公倍数=(a,b的最大公约数)*(a除以最大公约数)*(b除以最大公约数)
int main(){
cout<<"请输入两个整数并用空格间隔开:"<<endl;
int a,b;
cin>>a>>b;
cout<<"最大公约数="<<yueshu(a,b)<<endl;
cout<<"最小公倍数="<<beishu(a,b)<<endl; //调用函数
return 0;}
第2个回答  2011-12-28
C语言书上有例子的
第3个回答  2011-12-26
好多书都有的,看看书吧
第4个回答  2012-05-06
int main()
{
int p,r,n,m,k,i;
scanf("%d%d",&m,&n);
if (n<m)
{
k=n;
n=m;
m=k;
}
for(i=1;;i++)
{ p=i*n;
if(p%m==0) break;
}
for(i=m;;i--)
{r=i;
if(m%r==0&&n%r==0) break;
}
printf("%d %d",p,r);
getch();
}
第5个回答  2011-12-26
//输入的两个数请用空格分隔,如:12 18
#include <stdio.h>
int main()
{
int p,r,n,m,temp;
printf("请输入两个正整数n,m:");
scanf("%d%d,",&n,&m);
if (n<m)
{
temp=n;
n=m;
m=temp;
}
p=n*m;
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
printf("它们的最小公约数为:%d\n",p/n);
return 0;
}本回答被提问者采纳

输入两个正整数M和N,求其最大公约数和最小公倍数.
int m(int x,int y);int a,b,t,p,q;printf("请输入两个正整数:\\n");scanf("%d,%d",&p,&q);if (p==q){ printf("最大公约数和最小公倍数均为:%d\\n",p);} else if(p

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;} ...

...的两个正整数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,求其最大公约数和最小公倍数.
printf("***请输入2个整数***\\n");scanf("%d d",&a,&b);\/\/注意输入a,b时用空格隔开 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(...

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

用c++输入两个正整数m和n 求其最大公约数和最小公倍数
using namespace std;int main(){ 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,求其最大公约数和最小公倍数
求出公约数以后temp1以后,公倍数的公式为m*n\/temp1,看下面代码 include<iostream>using namespace std; int main(){ int m = 0,n = 0,min = 0; int temp1 = 1,temp2 = 1; cout<<"please input two numbers:"<<endl; cin>>m>>n; min=(m < n) ? m : n; ...

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,求其最大公约数
c++也可以使用scanf和printf来输入输出,并且比较不易出错,最大公约数使用欧几里德辗转相除法伪代码如下:include<iostream>#include<stdlib.h>using namespace std;int main(){ int m,n,m_cup,n_cup,res; cin>>m>>n; if(m > 0 && n > 0) { m_cup=m; n_cup=n; res=m_cup...

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;} ...

相似回答