我必须要求用户输入一个数字,并打印出质因数。
但是,这与其他素因数代码不同,因为我需要以特定格式打印它。
如果用户输入27,我必须打印出来
3^3
如果使用输入28,我必须打印出来
2^2*7
我知道如何只打印出质因数,这样如果用户输入 27,它就会打印出来
3 3 3
但是,我很难弄清楚如何输入 ^ 符号和 * 符号。我想我必须计算相同的数字并进行 if 循环(可能),但我不知道如何做到这一点。
import java.util.*;
public class Prime{
public static void main(String[] args) {
Scanner input= new Scanner (System.in);
System.out.println("Enter a number");
int num= input.nextInt();
String prim = "";
for (int i = 2; i <= num ; i++) {
while (num % i == 0) {
prim += i + " ";
num /= i;
}
}
System.out.println("Prime factors are: " + prim);
}
}
上面的代码只是打印出因子,我现在要做的是使用 ^ 和 * 更改格式。
谁能帮帮我吗?
感谢任何帮助。
最佳答案
这里识别数字的代码频率,它是 j
变量,而 i
表示检查频率是否为 1 且大于 1 的值及其正确附加以获得所需的格式。
public static void main(String[] args) {
Scanner input= new Scanner (System.in);
String result="";
System.out.println("Enter a number");
int num= input.nextInt();
String prim = "";
for (int i = 2; i <= num ; i++) {
int j=0;
while (num % i == 0) {
j++;
prim += i;
num /= i;
}
if(j>0){
if(j>1){
result=result+i+"^"+j+"*";
}else{
result=result+i+"*";
}
}
}
System.out.println("Prime factors are: " +result.substring(0,result.length()-1));
}
关于java - 如何以特定格式打印质数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56388428/