descmult

Time limit: 0.1s Memory limit: 32MB Input: descmult.in Output: descmult.out

Se consideră două șiruri D=(D1,D2,...,Dn)D = (D_1, D_2, ..., D_n) și E=(E1,E2,...,En)E = (E_1, E_2, ..., E_n) ce reprezintă descompunerea în factori primi pentru un număr natural nenul XX, după cum urmează: DiD_i – factorul prim, EiE_i – puterea la care apare factorul prim DiD_i în descompunerea numărului XX (1in1 \leq i \leq n), unde nn reprezintă numărul factorilor primi.

Cerinţă

Să se determine:

  1. numărul total de divizori naturali ai lui XX
  2. divizorii lui XX care aparțin intervalului [A,B][A, B], unde AA şi BB sunt două numere naturale date.

Date de intrare

Fișierul de intrare descmult.in conține pe prima linie un număr natural CC care reprezintă cerința ce trebuie rezolvată (C=1C = 1 sau C=2C = 2).
A doua linie conține, despărțite prin câte un spațiu, trei numere naturale n A Bn \ A \ B, cu semnificația din enunț.
Pe linie a treia se află nn numere naturale, separate prin câte un spațiu, ce reprezintă factorii primi D1 D2 ... DnD_1 \ D_2 \ ... \ D_n din descompunerea lui XX.
Pe linia a patra se află nn numere naturale, separate prin câte un spațiu, ce reprezintă puterile la care apar
aceşti factori E1 E2 ... EnE_1 \ E_2 \ ... \ E_n.

Date de ieşire

Pentru C=1C = 1 se va rezolva doar prima cerință. În acest caz, fișierul de ieșire descmult.out va conține pe prima linie un singur număr natural nenul ce reprezintă numărul total de divizori naturali ai lui XX.
Pentru C=2C = 2 se va rezolva cea de-a doua cerință. În acest caz, fișierul de ieșire descmult.out va conține, separați prin câte un spațiu, divizorii lui XX ce aparţin intervalului [A,B][A, B].

Restricţii și precizări

  • 2n202 \leq n \leq 20
  • 1AB1071 \leq A \leq B \leq {10}^{7}
  • 2Di<1 0002 \leq D_i \lt 1 \ 000 (numere prime distincte), 1in1 \leq i \leq n
  • 1Ei101 \leq E_i \leq 10, 1in1 \leq i \leq n
  • Factorii primi D1,D2,...,DnD_1, D_2, ..., D_n nu sunt obligatoriu în ordine crescătoare
  • Se garantează că numărul maxim de divizori naturali ai lui X1019X \leq {10}^{19}
  • Intervalul [A,B][A, B] conține cel puțin un divizor
  • Numărul maxim de divizori aflați în intervalul [A,B][A, B] este 106\leq {10}^{6}
  • Ordinea de afișare a divizorilor nu este importantă
  • Pentru rezolvarea corectă a cerinței 11 se acordă 2020 de puncte, iar pentru cea de-a doua cerință se acordă 8080 de puncte.

Exemplul 1

descmult.in

1
4 30 50
3 2 5 11
1 3 2 1

descmult.out

48

Explicație

Pentru acest test se rezolvă cerința 11.
X=312352111=6600X = {3}^{1} \cdot {2}^{3} \cdot {5}^{2} \cdot {11}^{1} = 6600 și are 4848 de divizori: 11, 22, 33, 44, 55, 66, 88, 1010, 1111, 1212, 1515, 2020, 2222, 2424, 2525, 3030, 3333, 4040, 4444, 5050, 5555, 6060, 6666, 7575, 8888, 100100, 110110, 120120, 132132, 150150, 165165, 200200, 220220, 264264, 275275, 300300, 330330, 440440, 550550, 600600, 660660, 825825, 11001100, 13201320, 16501650, 22002200, 33003300, 66006600.

Exemplul 2

descmult.in

2
4 30 50
3 2 5 11
1 3 2 1

descmult.out

30 44 50 40 33

Explicație

Pentru acest test se rezolvă cerința 22.
X=312352111=6600X = {3}^{1} \cdot {2}^{3} \cdot {5}^{2} \cdot {11}^{1} = 6600.
Divizorii ce aparțin intervalului [30,50][30, 50] sunt: 30,33,40,44,5030, 33, 40, 44, 50. Ordinea de afișare a divizorilor nu este importantă.

Log in or sign up to be able to send submissions!