Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.lang.*;
- class Main
- {
- public static void main (String[] args) throws java.lang.Exception
- {
- Scanner scanner = new Scanner(System.in);
- int n = scanner.nextInt();
- int[][] tests = new int[n][2];
- int max = 0;
- for (int i = 0; i < n; i++) {
- tests[i][0] = scanner.nextInt();
- tests[i][1] = scanner.nextInt();
- if (tests[i][1] > max) {
- max = tests[i][1];
- }
- }
- int[] primes = new int[max + 1];
- for (int i = 2; i < max + 1; i++) {
- primes[i] = 1;
- }
- for (int i = 4; i < max + 1; i += 2) {
- primes[i] = 0;
- }
- for (int i = 3; i <= (max + 1) / 2; i += 6) {
- if (primes[i] == 0) {
- continue;
- }
- for (int j = 2 * i; j < max + 1; j += i) {
- primes[j] = 0;
- }
- if (i + 1 < max) {
- if (primes[i] == 0) {
- continue;
- }
- for (int j = 2 * (i + 2); j < max + 1; j += (i + 2)) {
- primes[j] = 0;
- }
- }
- }
- for (int i = 1; i < max + 1; i++) {
- primes[i] += primes[i - 1];
- }
- for (int i = 0; i < n; i++) {
- System.out.println(primes[tests[i][1]] - primes[tests[i][0]]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement