Help please!!! Subprogramul f este definit alăturat. Indicați apelul care determină afişarea, în ordine strict descrescătoare, a tuturor divizorilor proprii pozitivi ai numărului 1000 (divizori diferiți de 1 și de 1000).

100 puncte

Help Please Subprogramul F Este Definit Alăturat Indicați Apelul Care Determină Afişarea În Ordine Strict Descrescătoare A Tuturor Divizorilor Proprii Pozitivi class=

Răspuns :

In subprogramul tau variabila d creste dupa ce este apelat f(n,d++) dar nefiind varaibila globala nu o creasca niciodata. Deci, trebuie ++d nu d++, ori programul va apela acelasi f(n,d) la infinit (atata timp cat d-ul initial este mai mic decat n/2). Asa va face ++ inainte sa se reapeleze.

Cu modificarea aceasta obtii divizorii proprii ai numarului 1000 cu apelul f(1000,1). Dar si un 500 inainte deoarece subprogramul verifica de 2 ori d=500. Pentru a rezolva si problema asta trebuie sa modifici d<n/2 in d<=n/2.

Răspuns:

Trebuie ++d, ci nu d++ .

Cu ajutorul acestei modificări obținem divizorii proprii ai

1.000 === apelul f(1.000,1)

d = 500, deoarece subprogramul verifica de 2 ori

Se modifica din d<n/2 in d<=n/2