输入一个正整数repeat (O<repeat<10),做repeat次下列运算读入一个正整数n(n>1),如果它是素数,则给出是素数的信息,否则输出它的质因子乘积的表达式输出要求(所有的输出中不包合空格): System.outprintIn(n+"是素数”;//当n是素数时 System.out .print(n+"=");//非素数时System.out .print(i+"");//非最后一个质因子 System.out .printIn(i); //最后一个质因子 即:不是素数时,输出的式子中不包含任何空格,一个式子占一行,且要求质因子从小到大
时间: 2024-02-09 12:11:49 浏览: 69
这段 Java 代码的实现如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int repeat = in.nextInt();
for (int i = 0; i < repeat; i++) {
int n = in.nextInt();
if (isPrime(n)) {
System.out.println(n + "是素数");
} else {
System.out.print(n + "=");
int[] factors = getFactors(n);
for (int j = 0; j < factors.length - 1; j++) {
System.out.print(factors[j] + "*");
}
System.out.println(factors[factors.length - 1]);
}
}
}
// 判断一个数是否为素数
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
// 获取一个数的所有质因子
public static int[] getFactors(int n) {
int[] factors = new int[100];
int index = 0;
for (int i = 2; i <= n; i++) {
while (n % i == 0) {
factors[index++] = i;
n /= i;
}
}
int[] result = new int[index];
System.arraycopy(factors, 0, result, 0, index);
return result;
}
}
```
该程序先读入一个数 repeat 表示要进行的运算次数,然后进行 repeat 次运算。每次运算读入一个正整数 n,如果 n 是素数,则输出 n 是素数的信息;否则输出 n 的质因子乘积的表达式,其中质因子从小到大排列,每个质因子之间没有任何空格,一个式子占一行。
其中,isPrime() 方法判断一个数是否为素数,getFactors() 方法获取一个数的所有质因子。
阅读全文