我受到编码网站的以下问题的质疑:
=============================================== =================================== 给定K素数和形式Ai,Bi的T查询,对于每个查询打印Ai和Bi(包括两者)之间的整数数,这些整数可被K给定素数中的至少一个整除。
输入 第一行:K和T. 第二行:K素数。 接下来的T行,每行包含Ai,Bi。
输出 打印T行,表示每个T查询的答案。
约束 1≤K≤10 1≤T≤100 1≤A≤B≤109 每个素数≤107 样本输入(明文链接) 2 1 2 3 1 10 样本输出(明文链接) 7 说明 2,3,4,6,8,9,10是7个数字。
=============================================== ========================
当我运行以下代码(在系统编译器中)时,它运行良好,但是当我将它提交到站点时,所有测试用例都会抛出nzec运行时错误。遗憾的是,该网站不共享测试用例,但可以使用该问题创建它们。
任何人都可以解释为什么会出现nzec错误吗?我使用过Java,因此代码抛出了需要捕获的异常:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Scanner;
class TestClass {
public static void main(String args[] ) throws Exception {
Scanner scan = new Scanner(System.in);
String[] line1 = scan.nextLine().split(" ");
int fPrime,first,last,count=0,cur;boolean duplicate=false;
int K = Integer.parseInt(line1[0]);
int T = Integer.parseInt(line1[1]);
int[][] num=new int[2][T];
// int arr[];
String[] line2 = scan.nextLine().split(" ");
if(T<=100 )
{
for(int k=0;k<T;k++)
{
if(scan.hasNextLine())
{
String[] line3 = scan.nextLine().split(" ");
num[0][k] = Integer.parseInt(line3[0]);
num[1][k] = Integer.parseInt(line3[1]);
// System.out.print("num0 = " + num[0][k]);
// System.out.println("num1 = " + num[1][k]);
}
else
{
System.out.println("Lines of Ai and Bi are missing. Make sure T lines exist");
}
}
}
else
{
System.out.print("Error! T>100");
}
if(T<=100)
{
for(int l = 0; l < T; l++)
{
first = num[0][l];
last = num[1][l];
int arr[] = new int[last];
cur=0;
// System.out.println("first = " +first);
// System.out.println("last = " +last);
for(int i = first; i<=last; i++ )
{
for(int j = 0; j < K; j++)
{
fPrime = Integer.parseInt(line2[j]);
// System.out.println("fPrime = " +fPrime);
if(( fPrime<=1000000) && (first<=1000000000 && last<=1000000000)){
if(i%fPrime==0)
{
// System.out.println("Gotcha num " + i);
for(int a = 0; a < arr.length; a++)
{
if (arr[a] == i)
{
duplicate=true;
// System.out.print("arr"+a+" = " + i);
}
}
if(duplicate==true)
{
duplicate=false;
}
else
{
arr[cur++]=i;
count++;
}
}
}
else
{
System.out.println("Make Sure 1 ? A ? B ? 10^9 Each prime ? 10^7" );
}
}
}
System.out.println(count);
}
}
else System.out.println("T can not be greater than 100");
}
}