简单的小程序该怎么优化java

  1. 数素数 (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。

输入格式:

输入在一行中给出M和N,其间以空格分隔。

输出格式:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
提交代码

 import java.util.Scanner;

public class B1013 {
    public static boolean isPrime(int number)
    {
        for (int i = 2; i <= Math.sqrt(number); i++)
        {
            if (number % i == 0)
            {
                return false;               
            }           
        }
        return true;        
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int M = in.nextInt();
        int N = in.nextInt();
        int count = 0;

        for (int j = 2; j < 10000; j++)
        {
            if(isPrime(j))
            {
                count++;
                if( count >= M && count <= N)
                {
                    System.out.print(j);
                    if ((count - M + 1) % 10 > 0)
                    {
                        System.out.print(" ");              
                    }
                    else
                    {
                        System.out.print("\n");
                    }                                               
                }               
            }
            if (count > N)
            {
                break;
            }           
        }           
        in.close();
    }
}

用动态规划,把找到的素数记录下来。除法判断,只要判断2~sqrt(n)之间的素数,而不是所有数。

直接在第一次的时候做一次素数筛法就行了。