问题描述
- 随机数入两个数求期中素数和 求大神帮看看代码哪里错了
-
package exe;import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class Prime extends Applet implements ActionListener
{
Label l1,l2;
TextField t1,t2;
TextArea T1;
Button b1;
public void init()
{
l1 = new Label("输入第一个数:");
l2 = new Label("输入第二个数:");
t1 = new TextField(20);
t2 = new TextField(20);
T1 = new TextArea(5,30);
b1 = new Button("输出之间素数");
add(l1);
add(t1);
add(l2);
add(t2);
add(b1);
add(T1);
b1.addActionListener(this);
}public void actionPerformed(ActionEvent e) { String str1 = t1.getText(); String str2 = t2.getText(); int a = Integer.parseInt(str1); int b = Integer.parseInt(str2); boolean prime = true; for(int j = a ; j <= b ; j++) { for(int i = 0 ; i < j ; i++) { if( j % i == 0) { prime = false; } } if(prime == true) { String str3 = String.valueOf(j); T1.append(str3); } } }
}
解决方案
for(int j = a ; j <= b ; j++)
{
for(int i = 2 ; i < j ; i++)//这里从2开始,0,1都要排除在外
{
if( j % i == 0)
{
prime = false;
break;//整除了不是素数,可以跳出循环了,虽然没写没错,不过多计算了。
}
}
if(prime == true)
{
String str3 = String.valueOf(j);
T1.append(str3);
}
}
解决方案二:
boolean prime = true;
要写在第一个for循环里面。否则后面的判断就有问题了。
时间: 2024-11-08 22:24:42