Skip to content

1013 数素数

Pi 表示第 i 个素数。现任给两个正整数 MN≤104,请输出 PM>PN 的所有素数。

输入格式:

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

输出格式:

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

输入样例:

tex
5 27
5 27

输出样例:

tex
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103

Solution:

java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static boolean isPrime(int n) {
        if (n < 3) return n > 1;
        for (int i = 2; i * i <= n; i++) {
            if (n % i == 0) return false;
        }
        return true;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String[] input = in.readLine().split(" ");
        int m = Integer.parseInt(input[0]);
        int n = Integer.parseInt(input[1]);
        List<Integer> list = new ArrayList<>();
        int num = 2;
        while (list.size() < n) {
            if (isPrime(num)) {
                list.add(num);
            }
            num++;
        }
        int cnt = 1;
        StringBuilder sb = new StringBuilder();
        for (int i = m; i <= n; i++) {
            sb.append(list.get(i - 1));
            sb.append(i == n ? "" : cnt % 10 == 0 ? "\n" : " ");
            cnt++;
        }
        System.out.println(sb);
    }
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static boolean isPrime(int n) {
        if (n < 3) return n > 1;
        for (int i = 2; i * i <= n; i++) {
            if (n % i == 0) return false;
        }
        return true;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String[] input = in.readLine().split(" ");
        int m = Integer.parseInt(input[0]);
        int n = Integer.parseInt(input[1]);
        List<Integer> list = new ArrayList<>();
        int num = 2;
        while (list.size() < n) {
            if (isPrime(num)) {
                list.add(num);
            }
            num++;
        }
        int cnt = 1;
        StringBuilder sb = new StringBuilder();
        for (int i = m; i <= n; i++) {
            sb.append(list.get(i - 1));
            sb.append(i == n ? "" : cnt % 10 == 0 ? "\n" : " ");
            cnt++;
        }
        System.out.println(sb);
    }
}

Released under the MIT License.