在java中查找m到n之间的素数会显示以下错误
我一直在解决一个问题,输入m和n,打印m到n之间的所有素数 当我在ideone.com在线IDE中运行时,我获得了成功,我的代码运行完全正常,但这里的问题是它占用了将近4864MB的内存 转到链接并检查内存空间。 为什么程序很短,也没有那么复杂,却占用那么多内存呢在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
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认为这个世界和一个分子一样大。我想我看到了这个问题……谢谢你的回答!