Sunteți pe pagina 1din 1

Ministerul Educaţiei Naționale

Olimpiada de Informatică – etapa națională Clasa a VI-a


04-07 aprilie 2018
Sursa: descmult.cpp, descmult.c, descmult.pas

Problema 1 - descmult 100 de puncte


Se consideră două șiruri D =(D1, D2, ..., Dn) și E =(E1, E2, ... ,En) ce reprezintă descompunerea în factori
primi pentru un număr natural nenul X, după cum urmează: Di – factorul prim, Ei – puterea la care apare
factorul prim Di în descompunerea numărului X (1≤i≤n), unde n reprezintă numărul factorilor primi.
Cerinţe
Să se determine:
1. numărul total de divizori naturali ai lui X
2. divizorii lui X care aparțin intervalului [A,B], unde A şi B sunt două numere naturale date.
Date de intrare
Fișierul de intrare descmult.in conține pe prima linie un număr natural C care reprezintă cerința ce
trebuie rezolvată (C=1 sau C=2).
A doua linie conține, despărțite prin câte un spațiu, trei numere naturale n A B, cu semnificația din enunț.
Pe linie a treia se află n numere naturale, separate prin câte un spațiu, ce reprezintă factorii primi D1 D2 ... Dn
din descompunerea lui X.
Pe linia a patra se află n numere naturale, separate prin câte un spațiu, ce reprezintă puterile la care apar
aceşti factori E1 E2 ... En.
Date de ieşire
Pentru C=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 X.
Pentru C=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 X ce aparţin intervalului [A,B].
Restricţii și precizări
- 2 ≤ n ≤ 20
- 1 ≤ A ≤ B ≤ 107
- 2 ≤ Di < 1000 (numere prime distincte), 1≤i≤n
- 1 ≤ Ei ≤ 10, 1≤i≤n
- Factorii primi D1, D2,...,Dn nu sunt obligatoriu în ordine crescătoare
- Se garantează că numărul maxim de divizori naturali ai lui X ≤ 1019
- Intervalul [A,B] conține cel puțin un divizor
- Numărul maxim de divizori aflați în intervalul [A,B] este ≤ 106
- Ordinea de afișare a divizorilor nu este importantă
- Pentru rezolvarea corectă a cerinței 1 se acordă 20 de puncte, iar pentru cea de-a doua cerință se
acordă 80 de puncte.
Exemplu
descmult.in descmult.out Explicație
1 48 Pentru acest test se rezolvă cerința 1.
4 30 50 X=31*23*52*111=6600 și are 48 de divizori: 1, 2, 3, 4, 5, 6, 8,
3 2 5 11 10, 11, 12, 15, 20, 22, 24, 25, 30, 33, 40, 44, 50, 55, 60, 66,
1 3 2 1 75, 88, 100, 110, 120, 132, 150, 165, 200, 220, 264, 275, 300,
330, 440, 550, 600, 660, 825, 1100, 1320, 1650, 2200, 3300,
6600.
2 30 44 50 40 33 Pentru acest test se rezolvă cerința 2.
4 30 50 X=31*23*52*111=6600.
3 2 5 11 Divizorii ce aparțin intervalului [30,50] sunt: 30,33,40,44,50.
1 3 2 1 Ordinea de afișare a divizorilor nu este importantă.
Timp maxim de execuţie/test: 1 secundă
Memorie totală: 32 MB, din care maxim 32 MB pentru stivă
Dimensiunea maximă a sursei: 10 KB

S-ar putea să vă placă și