import java.applet.*;
import java.awt.*;
import java.awt.event.*;public class sushu extends Applet implements ActionListener
{
Label label1,label2;
TextField text1,text2;
Button btn1;
int xx=0,sx=1;int i=0,j=0;
public void init()
{
label1=new Label("请输入数的下限:");
text1=new TextField(10);
label2=new Label("请输入数的上限:");
text2=new TextField(10);
btn1=new Button("查找");
add(label1);
add(text1);
add(label2);
add(text2);
add(btn1);btn1.addActionListener(this);
}
public void paint(Graphics g)
{for(i=xx;i<=sx;i++)
for(j=1;j<Math.sqrt(i);j++)
{if(i%j==0)continue;
g.drawString(i+"",20+5*i,50+5*i);}
}
public void actionPerformed(ActionEvent e)
{
xx = Integer.parseInt(text1.getText());
sx = Integer.parseInt(text2.getText());
repaint();
}
}
怎么输出的结果有错误啊,请高手指点下错在哪了,顺便问下,怎么按自己的要求排列APPlet中添加的控件以及怎么控制打印语句g.drawString使它在每行如5个数后换到下行?谢谢.

解决方案 »

  1.   


    public   void   paint(Graphics   g) 

       //打印的数字个数
        int num = 0;
       for(i=xx;i <=sx;i++){
             boolean b = true; 
             for(j=1;j <Math.sqrt(i);j++) {
                 if(i%j==0){
                      b = false;
                      break;
                 }
             }
             //质数
              if(b){
                g.drawString(i+ " ",20+ 15*((num - 1) % 5),50+15*((num - 1) / 5));
                num++; 
             }
       }

      

  2.   

    import java.util.Calendar;
    import java.util.Date;public class test {
    public static void main(String args[]) 

    Date date = new Date();
    System.out.println(date.toLocaleString());
    int i,j,k=0; 
    for(j=2;j<=100000;j++) //这里把2和100000换成你需要的下限和上限 

    for(i=2;i<=j/2;i++) //2到2分之j的数 

    if(j%i==0) 
    break;//如j能整除i,j不是素数,跳出至下一个数字 

    if(i>j/2)

    System.out.print(j+"  "); 
    k++;
    }
    if(j%10000==0)
    System.out.println("");
    }
    date = new Date();
    System.out.println(date.toLocaleString());
    System.out.println(k);
    } }