对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成:
(1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果 n<>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数 n,重复执行第一 步。
(3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。
package cskaoyan;
import org.junit.Test;
public class cskaoyan4 {
@Test
public void zhiYinShu() {
java.util.Scanner in = new java.util.Scanner(System.in);
int number = in.nextInt();
int prime = 2;
in.close();
if (number < 2) {
return;
} else {
System.out.print(number + "=");
while (number != prime) {
if (number % prime == 0) {
System.out.print(prime + "*");
number = number / prime;
} else {
prime = nextPrime(prime);
}
}
System.out.print(number);
}
}
public int nextPrime(int number) {
number = number + 1;
while (true) {
if (isPrime(number)) {
return number;
} else {
number = number + 1;
}
}
}
public boolean isPrime(int number) {
boolean flag = true;
if (number < 2) {
flag = false;
} else if (number == 2) {
flag = true;
} else {
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
flag = false;
break;
}
}
}
return flag;
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。