En matemàtiques, un natural és semiprimer si és el producte de dos nombres primers. Els primers nombres semiprimers són 4(), 6(), 9(), 10(), 14().
1. Feu una funció
bool primer(int n);
que indiqui si un natural é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 , desa en si és o no semiprimer. A més, quan és cert, desa en i dos nombres primers tals que i .
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.
Com sempre en informàtica, els nombres naturals inclouen el zero.
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)