C语言:输入两个整数m和n,求它们的最大公约数和最小公倍数。

a)在运行时,输入的值m〉n,观察结果是否正确。b)再输入时,使m<n观察结果是否正确。c)修改程序,不论m和n为何值(包括)负整数,都能得到正确结果。//以下是最大公约... a)在运行时,输入的值m〉n,观察结果是否正确。
b)再输入时,使m<n观察结果是否正确。
c)修改程序,不论m和n为何值(包括)负整数,都能得到正确结果。

//以下是最大公约数的例子,必须用C语言来编写,C++就不用了;
展开
 我来答
匿名用户
2013-11-18
展开全部
两个非零整数的最大公约数就是它们绝对值的最大公约数,最小公倍数是它们的积除以最大公约数
#include <stdio.h>
#include <math.h>
int f(int a,int b)
{
int r;
r = a % b;
while(r != 0)
{
a = b;
b = r;
r = a % b;
}
return b;
}
int main()
{
int a, b, r1;
scanf("%d %d", &a, &b);
a=abs(a);
b=abs(b);
r1 = f(a, b);
printf("%d\n",r1); //输出最大公约数
printf("%d\n",a*b/r1); //输出最小公倍数
return 0;
}
匿名用户
2013-11-18
展开全部
#include<stdio.h>
main(){
long int a,b,d;
long int m,n,i,j;
double c,h;
c=1;
scanf("%ld%ld",&m,&n);
if(m>=n){
b=m;
d=n;
}else{b=n;d=m;}
for(i=1;i<=(b/2);i++){
if((m%i==0) && (n%i==0) && (m%n!=0) && (n%m!=0)){
c=c*i;
}else{if(b%d==0){c=d;}}

}
h=(m*n/c);
printf("%.0lf %.0lf",c,h);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-11-18
展开全部
#include <stdio.h>

int GCD(int a,int b)
{
int r;
r = a % b;
while(r != 0)
{
a = b;
b = r;
r = a % b;
}
return b;
}
int main()
{
int a, b, gcd;
scanf("%i%i", &a, &b);
gcd = GCD(a, b);
printf("gcd = %i",gcd);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式