import java.util.*; import java.lang.*; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; class Main { public static void main (String[] args) throws java.lang.Exception { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int zestawy = 0; try { zestawy = Integer.valueOf(bf.readLine()); } catch (IOException e) { e.printStackTrace(); } List howManySignificant = new ArrayList<>(); for (int i = 0; i < zestawy; i++) { int numerekOd = 0; int numerekDo = 0; int counter = 0; try { String numbersString = bf.readLine(); String[] numbers = numbersString.split(" "); numerekOd = Integer.valueOf(numbers[0]); numerekDo = Integer.valueOf(numbers[1]); } catch (IOException e) { e.printStackTrace(); } for (int j = numerekOd; j <= numerekDo; j++) { if (isSignificant(j)) { counter++; } } howManySignificant.add(counter); } for (int i : howManySignificant) { System.out.println(i); } } public static boolean isSignificant(int number) { List dzielniki = new ArrayList<>(); for (int i = number-1; i > 1 ; i--) { if (number % i == 0) { dzielniki.add(i); } } Double pierwiastek = Math.sqrt(number); Double srednia = dzielniki.stream() .mapToDouble(i -> i.doubleValue()) .sum()/dzielniki.size(); return srednia.compareTo(pierwiastek) <= 0; } }