计算素数。输入一个range,计算2到range范围内的所有素数,显示在表格中,java
时间: 2024-02-19 07:58:36 浏览: 68
使用java找出给定范围素数
好的,我可以帮您解决这个问题。以下是一个Java程序,用于计算2到range范围内的所有素数,并将它们显示在表格中:
```java
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
public class PrimeNumberCalculator extends JFrame {
private JTextArea resultArea;
public PrimeNumberCalculator() {
// 设置窗口属性
setTitle("素数计算器");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 添加控件
JLabel rangeLabel = new JLabel("计算范围:");
JTextField rangeField = new JTextField(10);
JButton calculateButton = new JButton("计算");
resultArea = new JTextArea(10, 30);
JScrollPane scrollPane = new JScrollPane(resultArea);
JPanel inputPanel = new JPanel();
inputPanel.add(rangeLabel);
inputPanel.add(rangeField);
inputPanel.add(calculateButton);
Container container = getContentPane();
container.setLayout(new BorderLayout());
container.add(inputPanel, BorderLayout.NORTH);
container.add(scrollPane, BorderLayout.CENTER);
// 添加计算按钮的点击事件
calculateButton.addActionListener(e -> {
try {
int range = Integer.parseInt(rangeField.getText().trim());
ArrayList<Integer> primes = new ArrayList<>();
for (int i = 2; i <= range; i++) {
boolean isPrime = true;
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) {
isPrime = false;
break;
}
}
if (isPrime) {
primes.add(i);
}
}
// 将计算结果显示在文本区域中
StringBuilder result = new StringBuilder();
result.append(String.format("2 到 %d 范围内的素数有 %d 个:%n", range, primes.size()));
for (int i = 0; i < primes.size(); i++) {
result.append(primes.get(i)).append(", ");
if (i % 10 == 9) {
result.append("\n");
}
}
resultArea.setText(result.toString());
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "请输入一个整数!", "错误", JOptionPane.ERROR_MESSAGE);
}
});
}
public static void main(String[] args) {
PrimeNumberCalculator calculator = new PrimeNumberCalculator();
calculator.setVisible(true);
}
}
```
这个程序创建了一个窗口,其中包含一个文本框用于输入计算范围,一个按钮用于开始计算,以及一个文本区域用于显示计算结果。当用户点击计算按钮时,程序将读取输入的范围,计算出范围内的所有素数,并将它们显示在文本区域中。
阅读全文