黑马程序员技术交流社区

标题: 求素数,怎么破? [打印本页]

作者: adolph    时间: 2015-3-15 00:43
标题: 求素数,怎么破?

//输入上限与下限,输出范围内的素数
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
 
public class Sushu extends Applet implements ActionListener
{
  Label  lb1,lb2,result;
  TextField  in1,in2;
  TextArea   out1;
  Button  btn1,btn2;
  int a=0,b=0;
  String s="";
    
  public  void  init()
  {
    result=new Label("输出框");
    
    lb1=new Label("上限");
    lb2=new Label("下限");
    
    in1=new TextField(5);
    in2=new TextField(5);
    
    out1=new TextArea();
    out1.setEditable(false);//设为不可编辑
    
    btn1=new Button("输出素数");
    btn2=new Button("关闭");
    
    add(lb1);
    add(in1);
    add(lb2);
    add(in2);
    add(btn1);
    add(btn2);
    add(result);
    add(out1);
    
    btn1.addActionListener(this);
    btn2.addActionListener(this);
  }
  
  public void actionPerformed(ActionEvent  e)
  {
    int k=0;//设计数器
    if  (e.getSource()==btn1)//响应按钮"输出素数"的动作
    {
    out1.setText("\n");//新行输出
    a=Integer.parseInt(in1.getText());
    b=Integer.parseInt(in2.getText());
    
    //判断是否素数,是则计数并加入输出子串s
    Loop:
    for(int i=b;i<a;i++)
    {
      for(int j=2;j<i;j++)
      {
        if(i%j==0)
          continue  Loop;
      }
      k++;
      if(k%10==0)  //每10个数加个回车
        s=s+i+","+"\n";
      else
        s=s+i+",";
    }
    result.setText(b+"与"+a+"之间共有素数"+k+"个,输出如下:");
    out1.setText(s);
    }
    else    System.exit(0);//点击"关闭"退出程序
  }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2