用Java写 输入一个正整数n表示打印范围,表示打印1到n之间的所有素数; 输出的格式要求为:一行 8 个数,每个数占 4 个字符位置,右对齐
时间: 2024-05-09 22:18:46 浏览: 93
以下是Java程序实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int count = 0;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
System.out.printf("%4d", i);
count++;
if (count == 8) {
System.out.println();
count = 0;
}
}
}
}
private static boolean isPrime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
```
程序流程如下:
1. 从标准输入读入一个正整数n。
2. 从2到n遍历每个数,对于每个数判断是否为素数。
3. 如果是素数,输出该数,并将计数器加1。
4. 如果计数器达到8,换行并将计数器清零。
5. 所有数遍历完毕后结束程序。
判断是否为素数的方法isPrime使用的是试除法,从2到该数的平方根遍历每个数,如果该数能被整除,则不是素数;否则是素数。
阅读全文