java中的素数生成器

java中的素数生成器,java,primes,Java,Primes,我写这个程序是为了在两个值之间生成素数。 它对整数值非常有效。 我试图使它适用于长整型值,但每当输入长整型值时,程序将不进行任何处理而退出。 请帮我找到代码的问题 代码如下 public class Prime_generator { public static void main(String[] args) { Scanner src = new Scanner(System.in); Prime_generator obj = new Prime_g

我写这个程序是为了在两个值之间生成素数。 它对整数值非常有效。 我试图使它适用于长整型值,但每当输入长整型值时,程序将不进行任何处理而退出。 请帮我找到代码的问题
代码如下

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(" ");

    }
}
公共类素数发生器
{
公共静态void main(字符串[]args){
扫描仪src=新扫描仪(System.in);
Prime_generator obj=新Prime_generator();
int t,i,a;
t=src.nextInt();
如果(t>10)
系统出口(0);
长a1[]=新长[t];
长a2[]=新长[t];
对于(i=0;i如果(a1[a]>=1&&a1[a]=1&&a2[a]这是if语句中的大小限制。
你应该使用一个长的限制,你使用的是一个整数。
这是一个使用长

if (a1[a] >= 1 && a1[a] <= 1000000000000000l && a2[a] >= 1 && a2[a] <= 1000000000000000l && a2[a] - a1[a] <= 1000000000000000l && a1[a] <= a2[a])

if(a1[a]>=1&&a1[a]=1&&a2[a]这是if语句中的大小限制。
你应该使用一个长的限制,你使用的是一个整数。
这是一个使用长

if (a1[a] >= 1 && a1[a] <= 1000000000000000l && a2[a] >= 1 && a2[a] <= 1000000000000000l && a2[a] - a1[a] <= 1000000000000000l && a1[a] <= a2[a])

如果(a1[a]>=1&&a1[a]=1&&a2[a]可能整数溢出可能整数溢出您的欢迎。不要放弃将答案标记为正确:)您的欢迎。不要放弃将答案标记为正确:)