Java学习——85.素数问题

今天有个小朋友又问了我关于素数的问题,虽然之前已经做过类似的,但今天我把它加在用户界面上了。

素数:只能被1和它自身整除的数。

例:3是素数,因为它只能被1和3整除,不能被2整除。

4不是素数,因为4能被2整除。

此题目包括界面和算法两部分。

(1)      界面:本界面比较简单,只需要包括一个提示标签,一个作为输入数据的文本行,一个按钮,一个说明结果的文本行。

点击按钮后,在说明结果的文本行中给出是否为素数。

(2)      算法:即判断一个数是否为素数的算法。

思路:假设n为要判断的数,从2开始,看n除以2是否为0,如果为0,n不是素数。如果不为0,继续整除。因此要用循环。

其完整代码如下:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class PrimeNumber extends JFrame implements ActionListener{

private JTextField number,daan;

private JButton b;

public PrimeNumber(){

super("素数问题");

this.setBounds(200, 200, 400, 200);

this.setVisible(true);

this.setLayout(new GridLayout(2,1));

JPanel p1=new JPanel();

p1.add(new JLabel("请输入一个整数"));

number=new JTextField(10);

p1.add(number);

b=new JButton("判断是素数吗?");

b.addActionListener(this);

p1.add(b);

this.getContentPane().add(p1);

daan=new JTextField(10);

daan.setEditable(false);

this.getContentPane().add(daan);

}

public String prime_panduan(int n){//判断是否素数

int i;

String s="";

for(i=2;i<n;i++){

if(n%i==0)

{

s=n+"不是素数";

break;

}

}

if(i==n)

s=n+"是素数";

return s;

}

public void actionPerformed(ActionEvent ev){

String s=number.getText();

if(s.equals("")){

daan.setText("请输入整数");

daan.setForeground(Color.RED);

}

else{

int n=Integer.parseInt(number.getText());

String p=prime_panduan(n);

daan.setForeground(Color.GREEN);

daan.setText(p);

}

}

}

其运行结果如下:

如果没有输入数据,就单击按钮,会提示输入。

输入数据,如56,结果如下 :

输入数据,如17,结果如下:

(0)

相关推荐