Rădăcini întregi

Rădăcinile întregi ale ecuației cu coeficienți întregi:

    \[x^n+a_0x^{n-1} + \cdots + a_{n-1} = 0\]

sunt

    \[\pm 1\]

,

    \[\pm a_{n-1}\]

,

    \[\pm d\]

, în care

    \[d\]

este un divizor nebanal a lui

    \[a_{n-1}\]

(divizor întreg). Se citesc n și tabloul a. Se cere să se găsească și să se afișeze (câte una pe linie) rădăcinile întregi simple, duble, etc ale ecuației.

Indicație: Se vor defini și folosi funcțiile:

int ndiv(int q, int div[]);

crează un tablou al tuturor divizorilor lui q și a celor cu semn schimbat și întoarce numărul acestora;

int eval(int n, int a[], int x);

stabilește dacă polinomul are sau nu rădăcina x folosind schema lui Horner.

int copy(int as[], int n, int a[]);

copiază a în as și întoarce n.

int deriv(int n, int a[], int ad[]);

derivează polinomul cu grad n și coeficienții a și întoarce gradul polinomului derivat iar în ad salvează coeficienții acestuia.