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

首先我们的算法是:例如 输入的是 90

1.找到90的最小公约数(1除外)是 2

2.然后把公约数 2 输出

3.接着用 90 / 2 = 45 (如果这里是素数,就结束,否则继续找最小公约数)

4.找到45 的最小公约数 (最小公约数是 3)

5.输出 3   接着重复第3步...........(反正只要第3步是素数,就结束掉)

话不多说,都在代码里了。

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner input = new Scanner(System.in);

//输入

System.out.println("请输入一个大于3的数:");

int number = input.nextInt();

fengjie(number);

}

public static void fengjie(int j){

for(int i=2;i

//这个if是找最小公约数

if(j%i == 0){

System.out.print(i+"*");

//这个if是判断他是不是素数,如果是素数,就将这个数输出,然后就执行break;了

if(isPrime(j/i)){

System.out.print(j/i);

}

else

//如果不是素数,就继续分解,找公约数

fengjie(j/i);

break;

}

}

}

//判断是否是素数

public static boolean isPrime(int n){

for(int i=2;i

{

if(n%i == 0)

return false;

}

return true;

}

觉得这个题目应该对于初学者来说有一点小小的帮助

要是有哪里写错了,或者哪里不懂的地方的地方,可以给我留言,我会改正,谢谢大家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值