java核心基础篇-(将一个正整数分解质因数)输入任意正整数并获其分解质因数。例如:输入90,打印出90=2*3*3*5

题目: 将一个正整数分解质因数。例如:输入90,打印出90=233*5。程序分析: 对n进行分解质因数,应先找到一个最小的质数i因为最小因数就是代表不能再被他更小的因数除于(1除外)所以无非就是质数3,2,5,7…能被4整除就一定能被2整除,所以for循环根本轮不到4,直接先被2分解了。所以基本保证了是质数。当输入n被1以上的正数能整除那代表该数字为它的因数。例如90%2余0所以代表能整合除,所以打印循环中的i然后再拿90/2也就是90除于i可以得到一个整数45同理可以磨余3,可得余数为0
摘要由CSDN通过智能技术生成

题目: 将一个正整数分解质因数。例如:输入90,打印出90=2 * 3 * 3 * 5。

程序分析: 对n进行分解质因数,应先找到一个最小的质数i

  • 因为最小因数就是代表不能再被他更小的因数除于(1除外)所以无非就是质数3,2,5,7…
  • 能被4整除就一定能被2整除,所以for循环根本轮不到4,直接先被2分解了。所以基本保证了是质数。
  • 当输入n被1以上的正数能整除那代表该数字为它的因数。
  • 例如90%2余0所以代表能整合除,所以打印循环中的i
  • 然后再拿90/2也就是90除于i可以得到一个整数45
  • 同理可以磨余3,可得余数为0,再拿45/3得15以此类推
  • 假如最后n(最后一个因数如90的最后一个因数5)等于5也就是i
  • 就跳出循环,直接打印n就完成分解90=2x3x3x5

忘记很重要的一点,假如输入数字本身为素数,那么我们必须先判断是否为素数,是素数则直接打印素数=1*素数本身,就是素数的因式分解。否则我们正常分解就行
ps.复制粘贴既可以运行。

public class lx {
   
    public static void main(String[] args) {
   
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入数字:");
        int n
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值