C语言算法之分解质因数

求出区间[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;

}

分解质因数牛逼方法

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容