在java中查找m到n之间的素数会显示以下错误

在java中查找m到n之间的素数会显示以下错误,java,Java,我一直在解决一个问题,输入m和n,打印m到n之间的所有素数 当我在ideone.com在线IDE中运行时,我获得了成功,我的代码运行完全正常,但这里的问题是它占用了将近4864MB的内存 转到链接并检查内存空间。 为什么程序很短,也没有那么复杂,却占用那么多内存呢 import java.util.*; import java.lang.*; import java.io.*; public class Ideone { static class FastReader { Buffer

我一直在解决一个问题,输入m和n,打印m到n之间的所有素数

当我在ideone.com在线IDE中运行时,我获得了成功,我的代码运行完全正常,但这里的问题是它占用了将近4864MB的内存

转到链接并检查内存空间。 为什么程序很短,也没有那么复杂,却占用那么多内存呢

import java.util.*;
import java.lang.*;
import java.io.*;
public class Ideone
{
    static class FastReader
{
BufferedReader br;
    StringTokenizer st;

    public FastReader()
    {
        br = new BufferedReader(new
                 InputStreamReader(System.in));
    }

    String next()
    {
        while (st == null || !st.hasMoreElements())
        {
            try
            {
                st = new StringTokenizer(br.readLine());
            }
            catch (IOException  e)
            {
                e.printStackTrace();
            }
        }
        return st.nextToken();
    }

    int nextInt()
    {
        return Integer.parseInt(next());
    }

    long nextLong()
    {
        return Long.parseLong(next());
    }

    double nextDouble()
    {
        return Double.parseDouble(next());
    }

    String nextLine()
    {
        String str = "";
        try
        {
            str = br.readLine();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return str;
    }
}

public static void main (String[] args) throws java.lang.Exception
{
    // your code goes here
    FastReader s=new FastReader();
    int t = s.nextInt();
    while(t!=0)
    {
        int m = s.nextInt();
        int n = s.nextInt();
        for(int i = m; i<=n; i++)
        {



            int cnt = 0;
            if( (i>2 && i%2 ==0) || (i>3  && i%3==0) || (i>5 && i%5==0) || (i>7 && i%7 ==0) || (i>11 && i%11 ==0))
            {
                continue;
            }
            for(int j=1;j <=i; j++)
            {
                if(i%j ==0)
                {
                    cnt++;
                }
            }
            if(cnt ==2)
            {
                System.out.println(i);
            }
            cnt = 0;
        }
        System.out.println("");
        t--;
    }
  }
}
import java.util.*;
导入java.lang.*;
导入java.io.*;
公共类表意词
{
静态类快速读取器
{
缓冲剂;
StringTokenizer st;
公共快速阅读器()
{
br=新的BufferedReader(新的
InputStreamReader(System.in));
}
字符串next()
{
while(st==null | |!st.hasMoreElements())
{
尝试
{
st=新的StringTokenizer(br.readLine());
}
捕获(IOE异常)
{
e、 printStackTrace();
}
}
返回圣奈克特肯();
}
int nextInt()
{
返回整数.parseInt(next());
}
long nextLong()
{
返回Long.parseLong(next());
}
double nextDouble()
{
返回Double.parseDouble(next());
}
字符串nextLine()
{
字符串str=“”;
尝试
{
str=br.readLine();
}
捕获(IOE异常)
{
e、 printStackTrace();
}
返回str;
}
}
公共静态void main(字符串[]args)引发java.lang.Exception
{
//你的密码在这里
FastReader s=新的FastReader();
int t=s.nextInt();
while(t!=0)
{
int m=s.nextInt();
int n=s.nextInt();
对于(inti=m;i2&&i%2==0)|(i>3&&i%3==0)|(i>5&&i%5==0)|(i>7&&i%7==0)|(i>11&&i%11==0))
{
继续;
}

对于(int j=1;j我在ideone中运行了一个“hello,world”,它给了我4386816KB的内存使用量。所以我怀疑ideone中的内存使用量是否能说明你的代码有任何用处。

你没有关闭流!!这可能会导致问题…使用
尝试使用资源
快速阅读器
类做了什么
扫描器
做不了什么不知道……这个“世界”相当大。你试过“你好,分子”吗?@ajb很有趣。它给了我4386816KB来表示你好,分子。所以ideone认为这个世界和一个分子一样大。我想我看到了这个问题……谢谢你的回答!