【发布时间】:2019-10-06 17:32:04
【问题描述】:
Sphere Online Judge (SPOJ) 上的素数生成器有问题。
输入:单行中的测试用例数量t (t
输出:对于每个测试用例,打印所有质数 p,使得 m
我将 prime[0] 和 prime1 设为 -1。
int range[][] = new int[t][2];
for (int i = 0; i < t; i++) //take t ranges
{
for(int j = 0; j < 2; j++)
{
range[i][j] = sc.nextInt();
}
}
for(int i = 0; i < t; i++)
{
int prime[] = new int[range[i][1]+1];
for(int k = 2; k <= range[i][1]; k++)
{
prime[k] = k;
}
prime[0] = -1;
prime[1] = -1;
for(int k = 2; k <= range[i][1]; k++)
{
for(int m = k + 1; m < range[i][1]; m++)
{
int x = prime[k];
if(prime[m] % x == 0)
{
prime[m] = 0;
}
}
}
}
我尝试用eratosthenes 的筛子解决它。输出是:
Exception in thread "main" java.lang.ArithmeticException: / by zero
【问题讨论】:
-
欢迎来到 Stack Overflow。请通过tour 了解 Stack Overflow 的工作原理,并阅读How to Ask 了解如何提高问题的质量。然后edit你的问题包括你的完整源代码作为minimal reproducible example,其他人可以编译和测试。
标签: java exception divide-by-zero