Verificați dacă două numere naturale sunt prietenoase, sarcini pentru pascal, programare pentru

Formularea. Sunt date două numere naturale. Verificați dacă sunt prietenoși.

Notă: Numerele numit prietenoase doua numere naturale distincte, astfel încât suma tuturor divizorilor corespunzătoare a primului număr este egal cu al doilea număr și suma tuturor divizorilor corespunzătoare celui de al doilea număr este primul număr.







De exemplu, 220 și 284 sunt o pereche de numere prietenoase, deoarece:

Suma divizorilor proprii este 220: 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284

Suma divizorilor proprii este de 284: 1 + 2 + 4 + 71 + 142 = 220

Soluția. Această problemă se aseamănă cu problema 20, pentru că, de asemenea, am considerat suma divizorilor corespunzătoare a numărului introdus și apoi comparați această sumă cu foarte numere, verificându-l perfect. În acest caz, trebuie să găsim nu numai suma propriilor sale divizori primul număr (notat ca numărul 1. n și suma divizorilor sale însumează 1), dar, de asemenea, un al doilea număr (n 2 semnifica ia sumă și, respectiv, 2). Apoi, răspunsul la problemă este o comparație: (n 1 = suma 2) și (n 2 = suma 1). Apropo, aici pentru prima dată în povestea noastră, folosim operații logice (amintim că expresia X 1andX 2 ia valoarea adevărată dacă și numai dacă adevăratele expresii booleene X 1 și X 2. în alte cazuri, este nevoie de o valoare falsă).







Cu toate acestea, schema propusă poate fi simplificată. Să demonstrăm acest lucru cu un exemplu: Să presupunem că numărul 8 și 4. Noi credem suma de divizori proprii de 8: 1 + 2 + 4 = 7. Acest număr diferit de 4, astfel încât o pereche de mai îndeplinește numerele de prietenos definiție. Puteți emula imediat un răspuns negativ, evitând calcularea sumei divizoarelor celui de-al doilea număr. În cazul în care au fost date numerele 8 și 7, ar fi necesar să se calculeze suma propriilor divizori de numărul 7, este egal cu 1 (deoarece este simplu). Acum trebuie să comparăm suma divizoarelor proprii ale celui de-al doilea cu primul număr: deoarece 1 este diferit de 8, numerele nu sunt prietenoase.

Să arătăm în diagrama bloc cum să ramificăm programul (calculul ambelor sume nu este afișat):

Verificați dacă două numere naturale sunt prietenoase, sarcini pentru pascal, programare pentru

Astfel, fără operațiuni logice, puteți face fără.







Trimiteți-le prietenilor: