使用GUI的java素数分解(swing/awt)
这段代码使用Swing和awt来计算素数因子分解,代码是有效的,但它只显示一个素数因子,例如:如果我计算56,答案只有7,我该如何修复它? 提前谢谢
calculate6.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Get values from text fields
try {
int a = Integer.parseInt(input1.getText());
result.setText(String.valueOf(a + " "));
for (int i = 2; i <= a; i++) {
while (a % i == 0) {
result.setText(String.valueOf(i + " "));
// System.out.println(i + " ");
a = a / i;
}
}
if (a < 1)
result.setText(String.valueOf(a + " "));
// System.out.println(a + " ");
}
catch (Exception f) {
JOptionPane.showMessageDialog(rootPane, "ERROR: " + (f.getMessage()));
}
String aField = input1.getText();
if (e.getSource() == calculate6) {
if ("".equals(aField)) {
String emptyFieldWarning;
emptyFieldWarning = "One field is empty!";
JOptionPane.showMessageDialog(rootPane, emptyFieldWarning);
}
}
}
});
编辑1:我已经更改了操作部分
# 1 楼答案
你的挥杆部分很好。如果你只是想执行
你得到7,所以问题在这部分,你应该看看这里
# 2 楼答案
问题出在
while
循环中。它不是在积累这些因素。在这个示例程序中尝试这个getPrimeFactors()