【蓝桥杯】基础练习 分解质因数 Java语言

问题描述
  求出区间[a,b]中所有整数的质因数分解。
输入格式
  输入两个整数a,b。
输出格式
  每行输出一个数的分解,
  形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)

样例输入
3 10
样例输出
3=34=2*25=56=2*37=78=2*2*29=3*310=2*5

提示
  先筛出所有素数,然后再分解。
数据规模和约定
  2<=a<=b<=10000

参照思路
https://blog.csdn.net/qq_41282102/article/details/88431939
写bool isprime(int n),判断一个数是不是质数
用isprime()构建从2到b的质数表prime

要点:
如何显示被同一个质数除多次
如何及早的跳出循环,减少消耗的时间(最后判断不是最后一个质因数,就输出*;否则就直接break)
输出格式的处理

结合下面的线性筛(核心思想:确保每个合数只被最小质因数筛掉)
https://blog.csdn.net/GD_ONE/article/details/104660294

使用静态数组(质数表,长度b+1)
在这里插入图片描述

然后查询到
https://www.cnblogs.com/watchfree/p/5316595.html
放到OJ试了一下
在这里插入图片描述
结合相关思想,改进代码
在这里插入图片描述

算法用的好,快乐少不了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值