题解:
时间超时的看这里:
用java 一不注意就容易时间超时,内存不足。所以如果没有高级函数之类的语法,可以用c和python 来做。除了比赛外,走java方向的,推荐用java 淦她。
尽量用空间换时间,循环的次数越地越好(素数算法越快越好),循环内的判断次数也越好越少。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int m,n,ct=0,count=0;
m=sc.nextInt();
n=sc.nextInt();
int[] prime=new int[10005];
for (int i = 2; i <110000; i++) {
if (ct>10000)break;
if (is_prime(i))
prime[++ct] = i;
}
for (int i = m; i <=n; i++) {
count++;
if (count%10==0)
System.out.println(prime[i]);
else {
if (i==n){
System.out.print(prime[i]);
break;
}else
System.out.print(prime[i] + " ");
}
}
}
public static boolean is_prime(int num){
if(num<4)
return num>1;
if(num%6!=1&&num%6!=5)
return false;
int sq=(int)Math.sqrt(num);
for (int i = 5; i <=sq; i+=6) {
if (num%i==0||num%(i+2)==0)
return false;
}
return true;
}
}