| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 78669 人关注过本帖, 1 人收藏
标题:C语言怎么求最大公约数和最小公倍数
只看楼主 加入收藏
小俎俎
Rank: 2
等 级:论坛游民
帖 子:18
专家分:12
注 册:2012-10-6
收藏
得分:0 
给你一个函数
int find(int a,int b)
{
    if(a==b)
    {
        return a;
    }
    else
    {
        if(a>b)
        {
           a=a-b;
        }
        else
        {
            b=b-a;
        }
        return (find(a,b));
    }
}
求最大公约数
2013-02-22 21:37
hellou
Rank: 1
来 自:安徽
等 级:新手上路
帖 子:12
专家分:0
注 册:2013-3-16
收藏
得分:0 
三楼正解

我编程很差。
2013-03-19 19:56
w412685162
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-8-6
收藏
得分:0 
回复 10楼 xu362726904
大神   厉害
2013-10-12 21:45
yhyoin
Rank: 2
等 级:论坛游民
帖 子:7
专家分:30
注 册:2013-10-22
收藏
得分:0 

int    gcd(int m , int n){                        //两个数的最大公约数
    int temp = n;
    if(m < n)
    {
        n = m;
        m = temp;
    }

    while(m % n)
    {
        temp = m % n;
        m = n;
        n = temp;
    }

    return n;
}

inline int lcm(int m , int n){                //两个数的最小公倍数
   
    return m * n / gcd(m,n);
}

int clcm(int a[] ,int len){                    //数组的最小公倍数

    for(int i = 0 ; i < len ; i++)
        a[i+1] = lcm(a[i] , a[i+1]);

    return a[len-1];
}


[ 本帖最后由 yhyoin 于 2013-10-29 21:39 编辑 ]
2013-10-29 18:26
Wy1121
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-12-24
收藏
得分:0 
#include "stdio.h"
main()
{int a,b,c,n;
    scanf("%d,%d",&a,&b);
    if (a>b)
       for(n=b;n>1;--n)
         { if(a/n==0&&b/n==0)
            {printf("%d\n",n);
              break;      
                }
           }
      else
       for(n=a;n>1;--n)
         { if(a/n==0&&b/n==0)
             {printf("%d\n",n);
              break;
              }
          }
}请大神些看看为什么在输入了两个值之后没有运算结果就跳出来了  实在是没有道理啊
2013-12-29 11:14
feng198823
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2014-12-6
收藏
得分:0 
#include <stdio.h>

int main()
{

int m ,n,f,x,i,a;
 
scanf ("%d%d",&m,&n);
{
if(m>n) f=m;
else f=n;

if (m>n)   a=n;

   else a=m;

   

   
   for (i=f;1<=i;i--)
       if (f%i==0 && a%i==0) break;
       if (i<=1) printf ("m,n 的最大公约数是:1\n");

       else
       printf ("m,n 的最大公约数是%d\n",i);
}

if (m>n) f=m;

   else f=n;

   if (m>n)   x=n;

   else x=m;

   

      for (i=f; i>=f;)
      {  if (i%x==0) break;
      i= i+f;}
      
      printf ("m,n最小公倍数是:%d\n",i);

    return 0;

}
   自己再把    if判断改下     我今天刚做的习题
2014-12-14 10:46
hw1996hw
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-10-23
收藏
得分:0 
#include<stdio.h>
int f(int a,int b);
{int c,d;
if (a<b)
{c=b;
a=b;
b=c;
}
else
while (b!=0)
{d=a%b;
a=b;
b=d;
}
return (a);
}
main ()
{int fun(int ,int );
int x,y,m;
printf ("请输入两个数:");
scanf("%d%d",&x,&y);
  m=f (x,y);
  printf("%d",m);
  printf("%d",x*y/m);
return m;
}
错哪里,求改
2016-10-30 12:24
陈小红
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-6-1
收藏
得分:0 
#include<stdio.h>
int main()
{
    int a,b,i;
    scanf("%d%d",&a,&b);
    while(b)
    {
        i=a%b;
        a=b;
        b=i;
    }
    printf("%d",a);
    return 0;
}
2017-06-02 15:14
陈小红
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-6-1
收藏
得分:0 
回复 28楼 陈小红
最小公倍数的值用a*b/gcd就可以了,这里的a和b都是最开始的a,b的值
2017-06-02 15:20
zhuangzhi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-11-11
收藏
得分:0 

#include "stdio.h"
int main()
{
    int a;
    scanf("%d",&a);
    while(a--){
     int n,m,i,j;
     scanf("%d%d",&n,&m);
     for(j=m;j>0;j--){
         if(n%j==0 && m%j==0){
             printf("%d ",j);
            
             break;
         }
         }
    for(i=1;i<1000;i++){
        if(i%n==0&&i%m==0){
               printf("%d",i);
               printf("\n");
            
             break;
        }
     }   
   }
 }
   
2018-11-11 12:20
快速回复:C语言怎么求最大公约数和最小公倍数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013091 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved