РСОП XXVII 2015 12

L. DIVISORS 84

Условие


L. ДЕЛИТЕЛИ
---
Да се напише програма, която намира:
- броя на простите числа в интервала [а, b]; 
- за всяко число от същия интервал, което не е просто – неговия най-малък прост делител. 

Вход: 
Програмата трябва да може да обработва при едно изпълнение няколко тестови примера, които са зададени в двоичен (binary) файл, който ще бъде зададен като стандартен вход. Всеки тестов пример се състои от двете 32-битови положителни цели числа, които са краища на интервала – първо във файла е записан левият край, а после – десният. 
  
Изход: 
За всеки тестов пример програмата трябва да изведе на стандартния изход, първо, ред с текста  test case #< t >: (спазвайте стриктно форматирането от примера), където < t > е номерът на текущия тестов пример, а след това ред с текста < p > primes in [< a >, < b >]., където < a > и < b > са двата края на интервала, а < p > е броят на простите числа в него. Всеки от следващите редове в изхода за тестовия пример е във вида < q > < k > и означава, че простото число < q > е най-малък прост делител на < к > непрости числа в интервала. Двойките трябва да бъдат сортирани във възходящ ред на < q >. Между резултатите от всеки два поредни тестови примера трябва да има по един празен ред.

Ограничения: 
2 ≤ a ≤ 107, 2 ≤ b ≤ 107.

Примерен вход:
2 10
17 17
9 9
20 200	

Примерен изход:
test case #1: 
4 primes in [2, 10].
2 4
3 1

test case #2: 
1 primes in [17, 17].

test case #3: 
0 primes in [9, 9].
3 1

test case #4: 
38 primes in [20, 200].
2 91
3 30
5 12
7 6
11 3
13 1

Забележка: 
По понятни причини входните данни в примера са показани в текстов, а не в двоичен вид, както ще бъдат подадени на стандартния вход.