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

敢不敢来一个靠谱的答案!在线等!急求!... 敢不敢来一个靠谱的答案!在线等!急求! 展开
 我来答
果果就是爱生活
高能答主

2020-01-15 · 专注生活教育知识分享
果果就是爱生活
采纳数:2071 获赞数:272220

向TA提问 私信TA
展开全部

#include<stdio.h>

int main(){

int a,b,num1,num2,temp;

printf("please input two number:\n");

scanf("%d%d",&num1,&num2);

if(num1<num2){

temp = num1;

num1 = num2;

num2 = temp;

}

a = num1;

b = num2;

while(b!=0){

temp = a%b;

a=b;

b=temp;

}

printf("gongyueshu:%d\n",a);

printf("gongbeishu:%d\n",num1*num2/a);

}

扩展资料:

两个整数的最大公约数主要有两种寻找方法:

* 两数各分解质因数,然后取出同样有的质因数乘起来

*辗转相除法(扩展版)

最小公倍数(lcm)的关系:

gcd(a, b) * lcm(a, b) = ab

a与b有最大公约数,

两个整数的最大公因子可用于计算两数的最小公倍数,或分数化简成最简分数

两个整数的最大公因子和最小公倍数中存在分配律:

* gcd(a, lcm(b, c)) = lcm(gcd(a, b), gcd(a, c))

* lcm(a, gcd(b, c)) = gcd(lcm(a, b), lcm(a, c))

在坐标里,将点(0, 0)和(a, b)连起来,通过整数坐标的点的数目(除了(0, 0)一点之外)就是gcd(a, b)。

松甜恬0Je4ba
2014-04-08 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3365万
展开全部
/*输入两个正整数m和n,求其最大公约数和最小公倍数*/   
  
#include <stdio.h>   
  
void  main()  
{  
    int  m,n,j,i,k;  
    scanf("%d,%d" ,&m,&n);  
    (m<n)?j=m:j=n;  
    for (i=1;i<=j;i++)  
    {  
        if (m%i == 0 && n%i ==0)  
            k =i;  
    }  
    printf("最大公约数是:%d/n" ,k);  
      
    (m>n)?i=m:i=n;  
    j = m*n;  
    for (;i<=j;i++)  
    {  
        if (i%m==0 && i%n==0)  
        {  
            k = i;  
            break ;  
        }  
    }  
    printf("最小公倍数是:%d/n" ,k);  
      
}
追问

求解释啊,这个程序似乎漏了什么

输出的这是ASCII值?

追答
#include <stdio.h>   
   
int  main()  
{  
    int  m,n,j,i,k;  
    scanf("%d,%d" ,&m,&n);  
    (m<n)?j=m:j=n;  
    for (i=1;i<=j;i++)  
    {  
        if (m%i == 0 && n%i ==0)  
            k =i;  
    }  
    printf("最大公约数是:%d\n" ,k); 
    //printf("%d\n",k); 
       
    (m>n)?i=m:i=n;  
    j = m*n;  
    for (;i<=j;i++)  
    {  
        if (i%m==0 && i%n==0)  
        {  
            k = i;  
            break ;  
        }  
    }  
    printf("最小公倍数是:%d\n" ,k);
    //printf("%d\n",k);  
       
}

第一次\n错写成/n了,但是:

我测试的结果:

[zhanggang@pss-inv-asi-1 testself]$ ./testcopy

24,18

6

72


和你的不一样啊!

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alicehall
2014-04-08 · TA获得超过211个赞
知道答主
回答量:94
采纳率:0%
帮助的人:31.1万
展开全部
#include <stdio.h>     
void  main()  
{  
    int  m,n,j,i,k;  
    scanf("%d,%d" ,&m,&n);  
    (m<n)?j=m:j=n;
    (m<n)?i=n:i=m; 
    for (;i<=j;i--)  
    {  
        if (m%i == 0 && n%i ==0)
         { 
            k = i;
            break;
         }  
    }  
    printf("最大公约数是:%d" ,k);
    (m>n)?i=m:i=n;  
    j = m*n;  
    for (;i<=j;i++)  
    {  
        if (i%m==0 && i%n==0)  
        {  
            k = i;  
            break;  
        }  
    }  
    printf("最小公倍数是:%d" ,k);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
静夜丝雨A
2014-04-08 · TA获得超过5631个赞
知道大有可为答主
回答量:2749
采纳率:46%
帮助的人:1427万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式