Nombres amics

De Viquipèdia
Dreceres ràpides: navegació, cerca

Els nombres amics són dos nombres enters relacionats de manera que la suma dels divisors propis del primer és igual al segon, i la suma dels divisors propis del segon és igual al primer.

Per exemple, 220 i 284 són nombres amics, ja que la suma dels divisors propis de 220, 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284, i la suma dels divisors propis de 284, 1 + 2 + 4 + 71 + 142 = 220.

El matemàtic àrab Thàbit ibn Qurra derivà, cap al 850, una fórmula que permet generar nombres amics. Si

p = 3 × 2n-1 - 1,
q = 3 × 2n - 1,
r = 9 × 22n-1 - 1,

on n > 1 és un enter qualsevol i p, q i r són primers, llavors 2npq i 2nr són una parella de nombres amics. Cal notar que aquesta fórmula permet generar nombres amics, però no tots els nombres amics. Per exemple, ens proporciona les parelles (220, 284), (17.296, 18.416) i (9.363.584, 9.437.056), però no la parella (6.232, 6.368).

Es pot considerar que els nombres perfectes són un cas especial de nombres amics, ja que la suma dels seus divisors propis és igual a ell mateix.

Implementació en informàtica[modifica | modifica el codi]

En C++ es pot construir un codi que automatitzi la cerca de nombres amics. A les línies de sota, l'usuari pot introduir dos nombres i el programa dirà si són amics o no.

#include <iostream>


using namespace std;


int suma_divisors(int a) {
   int s = 0;
   for(int i = 1; i < a; ++i) {
       if(a%i == 0) s += i;
   }
   return s;
}

bool son_amics(int a, int b) {
   if(a == b) return false;
   if(a == suma_divisors(b) and b == suma_divisors(a) ) return true;
   return false;
}

Enllaços externs[modifica | modifica el codi]