很简单的查找并打印俩个数之间的素数问题,谁帮帮忙看下?

huangxw000 2007-11-01 04:54:55
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个数后换到下行?谢谢.

...全文
122 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nemo0228 2007-12-07
  • 打赏
  • 举报
回复
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);
}

}
网络咖啡 2007-11-03
  • 打赏
  • 举报
回复

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++;
}
}
}


62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧