美文网首页
C 语言求最小公倍数和最大公约数

C 语言求最小公倍数和最大公约数

作者: 863cda997e42 | 来源:发表于2018-02-08 13:50 被阅读17次

方法一:

#include <stdio.h>  
int main()  
{  
        int data1,data2,i;  
        printf("please input two datas:\n");  
        scanf("%d%d",&data1,&data2);  
        if(data1>data2)// 最小公倍数;  
        {  
                for(i=data1;i<=data1*data2;i++)  
                        if(i % data1==0 && i % data2 ==0)  
                                printf("[ %d %d]最小公倍数是 %d.\n",data1,data2,i);  
        }  
        else  
        {  
                for(i=data2;i<=data1*data2;i++)  
                        if(i % data1==0 && i % data2 ==0)  
                                printf("[ %d %d]最小公倍数是 %d.\n",data1,data2,i);  
        }  
  
        if(data1>data2)//最大公约数;  
        {  
                for(i=data2;i>=1;i--)  
                        if( data1 % i ==0 && data2 % i==0)  
                                printf("[ %d %d]最大公约数是 %d.\n",data1,data2,i);  
        }  
  
        else  
        {  
                for(i=data1;i>=1;i--)  
                        if( data1 % i ==0 && data2 % i==0)  
                                printf("[ %d %d]最大公约数是 %d.\n",data1,data2,i);  
  
        }  
        return 0;  
  
} 

可以让data1始终比data2大。
方法二:

#include <stdio.h>  
int main()  
{  
        int data1,data2,i,data;  
        printf("please input two datas:\n");  
        scanf("%d%d",&data1,&data2);  
        if(data1>data2)// 最小公倍数;  
        {  
                for(i=data1;i<=data1*data2;i++)  
                        if(i % data1==0 && i % data2 ==0)  
                                printf("[ %d %d]最小公倍数是 %d.\n",data1,data2,i);  
        }  
        else  
        {  
                for(i=data2;i<=data1*data2;i++)  
                        if(i % data1==0 && i % data2 ==0)  
                        {  
                                printf("[ %d %d]最小公倍数是 %d.\n",data1,data2,i);  
                                data=i;  
                        }  
        }  
        printf("最大公约数是:%d\n",(data1*data2)/data);  
  
        //此处也可以先求出最大公约数在求最小公倍数,方法一样!  
  
        return 0;  
} 

方法三:

#include <stdio.h>  
int main()  
{  
        int data1,data2,temp,multipy,Max;  
        printf("please input two datas:\n");  
        scanf("%d%d",&data1,&data2);  
        multipy=data1*data2;  
        temp=data1 % data2;  
        while(temp) //表示temp不为零;  
        {  
                data1=data2;  
                data2=temp;  
                temp=data1%data2;  
        }  
        Max=data2;//此处记录一下方便求最小公倍数;  
        printf("最大公约数是:%d\n",data2);  
        printf("最小公倍数是:%d\n",multipy/Max);  
        //再用上面的方法求出最小公倍数即可!!  
    return 0;     
}

相关文章

网友评论

      本文标题:C 语言求最小公倍数和最大公约数

      本文链接:https://www.haomeiwen.com/subject/zblttftx.html