Nombres semiprimers P70064


Statement
 

pdf   zip

thehtml

En matemàtiques, un natural és semiprimer si és el producte de dos nombres primers. Els primers nombres semiprimers són 4(= 2×2), 6(= 3×2), 9(= 3×3), 10(= 2×5), 14(= 2×7).

1. ‍ Feu una funció

bool primer(int n);

que indiqui si un natural n és o no primer. En aquest apartat, no podeu utilitzar bucles, per tant, serà bo que definiu una funció auxiliar amb algun paràmetre addicional.

2. ‍ Utilitzeu la funció anterior per implementar una acció

void semiprimer(int n, bool& b, int& p, int& q);

que, donat un natural n, desa en b si n és o no semiprimer. A més, quan b és cert, desa en p i q dos nombres primers tals que pq=n i pq.

3. ‍ Feu un programa que llegeixi una seqüència de naturals i que, per a cadascun, digui si és o no semiprimer i, en cas afirmatiu, escrigui la seva descomposició obtinguda per l’acció semiprimer(). Seguiu el format dels exemples.

Observació

Com sempre en informàtica, els nombres naturals inclouen el zero.

Public test cases
  • Input

    0
    1
    2
    4
    6
    17
    18
    30
    49
    323
    100000001
    999999991
    

    Output

    0: no
    1: no
    2: no
    4: yes (2,2)
    6: yes (2,3)
    17: no
    18: no
    30: no
    49: yes (7,7)
    323: yes (17,19)
    100000001: yes (17,5882353)
    999999991: yes (67,14925373)
    
  • Information
    Author
    Jordi Petit
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++