天天看点

最大公因数、最小公倍数、因式分解

    最大公因数使用辗转相除法来求,最小公倍数则由这个公式来求。

    最大公因数*最小公倍数=两数乘积

    解法最大公因数可以使用递归与非递归求解,因式分解基本就是使用小于输入数的数值当作除数,去除以输入数值,如果可以整除就视为因数,要比较快的解法就是求出小于该数的所有质数,并试试看是不是可以整除,求质数是另一个问题,请参考Eratosthenes筛选求质数。

    一、求最大公因数、最小公倍数

    #include<stdio.h>

    #include<stdlib.h>

    int main(void){

        int m,n,r;

        int s;

        printf("请输入两个数:");

        scanf("%d %d",&m,&n);

        s=m*n;

        while(n!=0)

        {

            r=m%n;

            m=n;

            n=r;

        } 

        printf("最大公倍数:%d\n",m);

        printf("最小公约数:%d\n",s/m);

        return 0;

    }

    二、因式分解

    void Resolve(int n)

    {

        int i;

        printf("%d=",n);

        for(i=2;i*i<=n;)

            if(n%i==0)

            {

                printf("%d*",i);

                n/=i;

            }

            else

                i++;

继续阅读