我正在尝试解决算法问题。这是关于在一定范围内生成质数。一个虚拟的法官给我一个NZEC错误,特别是以下消息:
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
at Codechef.main(Main.java:24)
在我的电脑上这有效,我不知道应该怎么做。 这是我的代码和法官的链接。
public static void main(String[] args)throws IOException{
//precargar criba
boolean[] criba = new boolean[100001];
Arrays.fill(criba, true);
for(int i=2; i<=criba.length;i++){
for(int j=2;i*j<=100000;j++){
criba[i*j]=false;
}
}
BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
String in;
String t;
long m,n;
t=sc.readLine();
int a=Integer.parseInt(t);
for (int i = 0; i < a ; i++) {
int k=0; int[] read=new int[2];
in = sc.readLine();
StringTokenizer stk = new StringTokenizer(in);
while(stk.hasMoreElements()){
read[k]=Integer.parseInt(stk.nextToken());
k++;
}
m=read[0]; n=read[1];
for(int j=(int) m; j<=n;j++){
if(j==1 || j==2)continue;
if(criba[j])System.out.println(j);
}
System.out.println();
}
sc.close();
}
答案 0 :(得分:0)
请在语句中指定分隔符。
StringTokenizer stk = new StringTokenizer(in);
例如,如果定界符为空格字符,则必须编写:
StringTokenizer stk = new StringTokenizer(in," ");