gpt4 book ai didi

java - java中的素数生成器

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:51 25 4
gpt4 key购买 nike

我编写了这个程序来生成两个值之间的素数。它非常适合整数值。我试图使其适用于长整数值,但只要输入长整数值,程序就会退出而不进行任何处理。请帮我找出代码的问题
代码如下。

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])

关于java - java中的素数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41196495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com