P0003. Nombres amics

Un parell de nombres es diuen amics si són diferents i la suma de tots els divisors positius de cada nombre (incloent 1 però excloent el propi nombre) és igual a l’altre nombre.

Per exemple, 2620 i 2924 són amics: els divisors de 2620 (a part de 2620) són 1, 2, 4, 5, 10, 20, 131, 262, 524, 655 i 1310, els quals sumen 2924. Els divisors de 2924 (apart de 2924) són 1, 2, 4, 17, 34, 43, 68, 86, 172, 731 i 1462, els quals sumen 2620.

Feu un programa que llegeixi una seqüència de parells de naturals més grans o iguals que 2, i escrigui aquells parells que són amics.

El vostre programa ha d’incloure dues funcions:

    int suma_divisors(int a);

que retorna la suma dels divisors positius del natural |a|2\mbox{|a|} \ge 2 que són estrictament més petits que |a|, i

    bool son_amics(int a, int b);

que indica si dos naturals |a|2\mbox{|a|} \ge 2 i |b|2\mbox{|b|} \ge 2 són amics.

Entrada

L’entrada és una seqüència a1,b1,a2,b2,,an,bna_1, b_1, a_2, b_2, \dots, a_n, b_n de nn parells de naturals més grans o iguals que 2, amb n0n \ge 0.

Sortida

Cal escriure una sola línia, la qual contingui cada parell de nombres aibia_i~b_i que siguin amics (incloent repeticions si és necessari). Els parells s’han d’escriure separats per comes i entre parèntesis, seguint el format dels exemples.

Informació del problema

Autoria: Professorat de P1

Generació: 2026-01-25T11:19:12.686Z

© Jutge.org, 2006–2026.
https://jutge.org