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

时间:2017-09-08 05:14:11

标签: java

我一直在解决一个问题,该问题接受m和n的输入并打印包含m到n之间的所有素数。

当我在ideone.com在线IDE中运行时,我获得了成功,我的代码运行完全正常,但问题是这需要几乎4864MB内存

https://ideone.com/oXcfeC

转到链接并检查内存空间。 当程序非常短而且不那么复杂时,为什么需要大量的内存。

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--;
    }
  }
}

1 个答案:

答案 0 :(得分:1)

我跑了一个问候,世界&#39;在ideone中,它给了我4386816KB的内存使用量。所以我怀疑ideone中的内存使用对你的代码说了什么有用的东西。