Mariei îi plac numerele prime și puterile numerelor prime. Pornind de la un număr prim , ea construiește noi numere, fiecare număr construit fiind un produs de forma (, ) sau , și un număr prim, numindu-le numere -prime. De exemplu, numerele sunt primele numere -prime deoarece , , , , , , , , , , , , , .
Într-o zi Maria a găsit o foaie de hârtie, pe care era scris un șir format din numere naturale nenule. Cum pe lângă numerele -prime ea este pasionată și de secvențe, și-a pus următoarea întrebare: câte secvențe sunt pe foaie cu următoarele proprietăți:
- conțin exact numere -prime;
- încep și se termină cu un număr -prim.
În plus, Maria dorește să știe care este poziția de început și cea de final, pentru fiecare secvență descoperită, relative la șirul scris pe foaia de hârtie.
Cerință
Scrieți un program care să citească mai multe seturi de date, fiecare set fiind format din numerele , cu semnificațiile din enunț, și șirul cu elemente , numerele Mariei. Programul va determina pentru fiecare set de date numărul secvențelor ce conțin exact numere -prime, precum și pozițiile de început și de final ale acestor secvențe în șirul din set.
Date de intrare
Pe prima linie a fișierului secvente.in
se află numărul reprezentând numărul de seturi de date din fișier. Seturile de date sunt scrise în fișier pe linii succesive. Pentru fiecare set de date, prima linie conține câte trei numere naturale: (numărul de elemente de pe foaie), și (cu semnificația din enunț), separate prin câte un spațiu, iar fiecare dintre următoarele linii conține câte un număr natural al șirului , numerele din șirul Mariei.
Date de ieșire
Fișierul secvente.out
va conține soluții corespunzătoare celor seturi de date. Pentru fiecare soluție prima linie va conține un număr reprezentând numărul de secvențe ce îndeplinesc proprietățile cerute, iar fiecare dintre următoarele linii vor conține câte numere naturale, separate printr-un spațiu, reprezentând poziția de început, respectiv de final a fiecărei secvențe, linii ordonate crescător după poziția de început. Dacă în șir nu există o astfel de secvență, prima linie a setului va conține valoarea .
Restricții și precizări
- ;
- ;
- ; este un număr natural prim
- ;
- Pozițiile din șir sunt numerotate de la 1.
- Numărul nu este -prim.
- O secvență dintr-un șir este formată din elemente aflate pe poziții consecutive în șirul dat.
Exemplu
secvente.in
2
5 3 2
7
27
4
45
1
3 5 7
3
4
5
secvente.out
2
1 2
2 4
0
Explicație
Cum , fișierul de intrare conține două seturi de date.
Primul set de date: , , și = ().
Șirul din acest set conține următoarele numere -prime:
(număr prim), (putere a lui ) și = (număr prim înmulțit cu o putere a lui ).
În șir sunt două secvențe cu câte doua numere -prime: respectiv .
Pe prima linie a fișierului de ieșire se va scrie valoarea , iar pe următoarele două linii, pozițiile de început și de final ale celor două secvențe determinate.
Șirul a din al doilea set de date, , , , = (), nu conține nici o secvență cu proprietatea cerută. Astfel, în fișierul de ieșire, pe cea de-a patra linie, se va scrie valoarea .