import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 输入
System.out.print("请输入一个大于3的数:");
int number = input.nextInt();
fengjie(number);//55
}
public static void fengjie(int j) {
//Math.sqrt(55)=7.416...
for (int i = 2; i < Math.sqrt(j); i++) {
//i小于j的平方根 Math.sqrt(j)
//平方根,又叫二次方根,表示为〔±√ ̄〕,其中属于非负数的平方根称之为算术平方根(arithmetic square root)。一个正数有两个实平方根,它们互为相反数,负数有两个共轭的纯虚平方根。
// 这个if是找最小公倍数,最小公倍数:指两个或多个整数公有的倍数中最小的一个。
if (j % i == 0) {//就是判断你输入的数(55),和2至你输入的数(55)的算术平方根之间的某一个数可以整除
//5
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) {// n=j / i,55/5=11
for (int i = 2; i < Math.sqrt(n); i++) {//Math.sqrt(11)=3.31...
//i小于n的平方根 Math.sqrt(n)
if (n % i == 0) {//i==3
return false;
}
}
return true;
}
}
Java将一个正整数分解为质因数
猜你喜欢
转载自blog.csdn.net/weixin_42470710/article/details/84421571
今日推荐
周排行