美文网首页
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