个人网站:打开连接
1013. 数素数 (20)
令Pi表示第i个素数。现任给两个正整数M <= N <= 10^4,请输出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.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static boolean isPrimeNum(int a) {
if (a == 1)
return false;
if (a % 2 == 0 && a != 2)
return false;
double half = Math.sqrt(a);
for (int i = 3; i <= half; i += 2) {
if (a % i == 0)
return false;
}
return true;
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int left, right;
String str = br.readLine();
String[] data = str.split(" ");
left = Integer.parseInt(data[0]);
right = Integer.parseInt(data[1]);
int times = 0;
for (int i = 1;; i++) {
if (isPrimeNum(i)) {
times++;
if (times >= left && times <= right) {
if ((times - left + 1) % 10 == 0 || times - left == right - left)
System.out.println(i);
else
System.out.printf("%d ", i);
}
if (times == right)
break;
}
}
}
}