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 que són
estrictament més petits que |a|, i

        bool son_amics(int a, int b);

que indica si dos naturals |a| ≥ 2 i |b| ≥ 2 són amics.

Entrada

L’entrada és una seqüència a₁, b₁, a₂, b₂, …, a_(n), b_(n) de n parells
de naturals més grans o iguals que 2, amb n ≥ 0.

Sortida

Cal escriure una sola línia, la qual contingui cada parell de nombres
a_(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
