时间限制
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)之间的素数,而不是所有数。
直接在第一次的时候做一次素数筛法就行了。