分解质因数
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
输入:一个正整数
输出:正整数=质因数*质因数*... 由小到大
输入用例:
96
输出用例:
96=2*2*2*2*2*3
输入用例:
173
输出用例:
173=173
相关知识
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int prime = 2;
sc.close();
if(n < 2) {
return;
}
else {
System.out.print(n + "=");
}
while(n != prime) {
if(n % prime == 0) {
System.out.print(prime + "*");
n= n / prime;
}
else {
prime = nextPrime(prime);
}
}
System.out.print(n);
}
public static int nextPrime(int n) {
n = n + 1;
while(true) {
if(isPrime(n)) {
return n;
}
else {
n = n + 1;
}
}
}
public static boolean isPrime(int n) {
boolean a = true;
if(n < 2) {
a = false;
}
else if(n == 2) {
a = false;
}
else {
for(int i = 2; i<= Math.sqrt(n); i++) {
if(n % i == 0) {
a = false;
break;
}
}
}
return a;
}
}
// your code