C语言算法之分解质因数

2018-09-14  本文已影响191人  卿人丶

求出区间[a,b]中所有整数的质因数分解。

输入

输入两个整数a,b。

输出

每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)(具体可看样例)。

样例输入

3 10

样例输出

3=3

4=2*2

5=5

6=2*3

7=7

8=2*2*2

9=3*3

10=2*5

蓝桥杯

#include<stdio.h>

#include<math.h>

int factor(int n)

{

        int i,j=(int)sqrt(n);

        if(n%2==0) return 2;

        for(i=3;i<=j;i++)

        if(n%i==0) return i;

        return n;

}

int main()

{

        int i, j, k, m, n;

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

        for(i=m;i<=n;i++)

        {

        j=factor(i);

        k=i/j;

        printf("%d=%d",i,j);

                while(k>1)

                {

                j=factor(k);

                k=k/j;

                printf("*%d", j);

                }

        printf("\n");

        }

    return 0;

}

分解质因数牛逼方法

上一篇 下一篇

猜你喜欢

热点阅读