java 中的主要发电机
Prime generator in java
我编写了这个程序来生成两个值之间的素数。
它非常适合整数值。
我试图让它适用于长整数值,但只要输入长整数值,程序就会退出而不进行任何处理。
请帮我找出代码的问题
代码如下。
public class Prime_generator
{
public static void main(String[] args) {
Scanner src = new Scanner(System.in);
Prime_generator obj = new Prime_generator();
int t, i, a;
t = src.nextInt();
if (t > 10)
System.exit(0);
long a1[] = new long[t];
long a2[] = new long[t];
for (i = 0; i < t; i++) {
a1[i] = src.nextLong();
a2[i] = src.nextLong();
}
for (a = 0; a < t; a++)
{
if (a1[a] >= 1 && a1[a] <= 1000000000 && a2[a] >= 1 && a2[a] <= 1000000000 && a2[a] - a1[a] <= 100000 && a1[a] <= a2[a])
obj.prime(a1[a], a2[a]);
else
System.exit(0);
}
}
void prime(long m, long n)
{
long j,k;
long c=0L;
for(j=m;j<=n;j++)
{
c=0L;
for(k=2;k<j/2;k++)
{
if((long)j%k==0L)
c++;
}
if(c==0L)
System.out.println(j);
}
System.out.println(" ");
}
}
这是 if 语句中的大小限制。
你应该使用一个长的限制,你在那里使用一个整数。
这是带有 long
的 if 语句的示例
if (a1[a] >= 1 && a1[a] <= 1000000000000000l && a2[a] >= 1 && a2[a] <= 1000000000000000l && a2[a] - a1[a] <= 1000000000000000l && a1[a] <= a2[a])
我编写了这个程序来生成两个值之间的素数。
它非常适合整数值。
我试图让它适用于长整数值,但只要输入长整数值,程序就会退出而不进行任何处理。
请帮我找出代码的问题
代码如下。
public class Prime_generator
{
public static void main(String[] args) {
Scanner src = new Scanner(System.in);
Prime_generator obj = new Prime_generator();
int t, i, a;
t = src.nextInt();
if (t > 10)
System.exit(0);
long a1[] = new long[t];
long a2[] = new long[t];
for (i = 0; i < t; i++) {
a1[i] = src.nextLong();
a2[i] = src.nextLong();
}
for (a = 0; a < t; a++)
{
if (a1[a] >= 1 && a1[a] <= 1000000000 && a2[a] >= 1 && a2[a] <= 1000000000 && a2[a] - a1[a] <= 100000 && a1[a] <= a2[a])
obj.prime(a1[a], a2[a]);
else
System.exit(0);
}
}
void prime(long m, long n)
{
long j,k;
long c=0L;
for(j=m;j<=n;j++)
{
c=0L;
for(k=2;k<j/2;k++)
{
if((long)j%k==0L)
c++;
}
if(c==0L)
System.out.println(j);
}
System.out.println(" ");
}
}
这是 if 语句中的大小限制。 你应该使用一个长的限制,你在那里使用一个整数。 这是带有 long
的 if 语句的示例if (a1[a] >= 1 && a1[a] <= 1000000000000000l && a2[a] >= 1 && a2[a] <= 1000000000000000l && a2[a] - a1[a] <= 1000000000000000l && a1[a] <= a2[a])