世界rpg血法师装备:求助:关于java编程的问题???

来源:百度文库 编辑:高考问答 时间:2024/04/29 00:59:38
在命令提示符中输入一个数字,判断它是不是素数?我就是觉得在输入的字符转换成相应整数的时候有些问题?我自己也编了一个程序,就是不对,请高手看看!
class ArgumentOutOfBound extends Exception
{
public ArgumentOutOfBound(){}
public ArgumentOutOfBound(String str){super(str);}
}
class prime1
{
boolean prime(int n){

if(n%2==0)
return false;
else
for(int i=2;i<=(int)Math.sqrt(n);i++)
if(n%i==1)
continue;
else
return false;
return true;

}
public static void main(String[] args)
{
byte bnum[]=new byte[20];
System.out.println("请输入一个18位以内的自然数:");
try{
int n=System.in.read(bnum);
String snum=new String(bnum,0,0,n-2);
int num=Integer.parseInt(snum);
if(num<=0) throw new ArgumentOutOfBound();
else if (num==1)
System.out.println(num+"既不是素数又不是合数!");
else if(num==2)
System.out.println(num+"是素数!");
else{

prime1 p=new prime1();
if(p.prime(num))
System.out.println(num+"是素数!");
else
System.out.println(num+"是合数!");
}
}
catch(ArgumentOutOfBound e)
{

System.out.println("您输入的不是自然数!");
}
catch(Exception e)
{

System.out.println("?你为什么不输入数字啊?");
}

}

}

看看我写得,你还是用这个进行读取键盘把
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));//创建读入流
System.out.print("请输入一个整数:");
String a = in.readLine();
int b = Integer.parseInt(a); //转换成int型
System.out.println("您输入的整数是" + a);
} catch (NumberFormatException e) {
//判断输入是否是整数
System.out.println("请不要输入字母或者汉字");
}

import java.io.*;
class su{
String s=null;
su(){}
public String inputs(){
try{
DataInputStream dm=new DataInputStream(System.in);
s=dm.readLine();
}catch(Exception e){
System.out.println ("错误");
}
return s;
}
public boolean sus(String s){
int n=0;
boolean b=true;
try{
n=Integer.parseInt(s);
}catch(Exception e){
System.out.println ("输入错误");
}

if(n%2==0&&n!=2){
b=false;
}else{
for(int i=2;i<=(int)Math.sqrt(n);i++){
if(n%i==0) {
b=false;
}
}
}
return b;
}
public static void main(String arg[]){
while(true){

String s=null;
su su=new su();
s=su.inputs();
System.out.println (su.sus(s));
}
}
}