Diferențe pentru problema/john între reviziile #3 si #11

Nu există diferențe între titluri.

Diferențe între conținut:

== include(page="template/taskheader" task_id="john") ==
John vrea să îi facă un cadou special de Crăciun Alexandrei (Alexandra fiind bună matematiciană). Citind o poveste el a aflat că în evul mediu îndrăgostiții sculptau pe două fructe *numere prietene*, iar apoi fiecare mînca unul din fructe. Căutînd despre *numerele prietene*, a găsit că au remarcabila proprietate că *fiecare din ele este suma divizorilor proprii ai celuilalt număr* (divizorii proprii ai lui *x* sînt acei divizori strict mai mici ca *x*).
John vrea să îi facă un cadou special de Crăciun Alexandrei (Alexandra fiind bună matematiciană). Citind o poveste el a aflat că în evul mediu îndrăgostiții sculptau pe două fructe *numere prietene*, iar apoi fiecare mînca unul din fructe. Căutînd despre *numerele prietene*, a găsit că ele sînt două numere *distincte* cu remarcabila proprietate că *fiecare din ele este suma divizorilor proprii ai celuilalt număr* (divizorii proprii ai lui *x* sînt acei divizori strict mai mici ca *x*).
De exemplu, numerele 220, 284 sînt prietene, deoarece divizorii proprii ai lui 220 sînt 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 și 110, a căror sumă este 284, iar divizorii proprii ai lui 284 sînt 1, 2, 4, 71 și 142, a căror sumă este 220.
John vă dă un număr *n* între 3 și 1000000 și vă roagă să calculați:
# Cel mai mare număr *z* ≤ n cu proprietatea că reprezentarea lui în baza doi are fix două cifre 1.
# Cel mai mare număr *z* ≤ *n* cu proprietatea că reprezentarea lui în baza doi are fix două cifre 1.
# Cîte perechi de numere mai mici sau egale cu *n* sînt prietene (ordinea numerelor în pereche nu contează).
# Cîte numere între 1 și *n* au proprietatea că suma divizorilor lor proprii, reprezentată în baza doi, este un număr palindrom.
# Cîte numere între 1 și *n*, inclusiv 1 și *n*, au proprietatea că suma divizorilor lor proprii, reprezentată în baza doi, este un număr palindrom.
h2. Date de intrare
Pe prima linie a fișierului de ieșire $john.out$ veți afișa astfel:
* Dacă cerința este 1, cel mai mare număr *z* ≤ *n* cu proprietatea că reprezentarea lui în baza doi are fix două cifre 1. Numărul *z* va fi afișat în baza 10.
* Dacă cerința este 2, numărul de perechi de numere prietene între 1 și *n*.
* Dacă cerința este 2, numărul de perechi de numere prietene între 1 și *n*, inclusiv 1 și *n*.
* Dacă cerința este 3, numărul de numere a căror sumă a divizorilor proprii este palindrom în baza doi.
table(example).
|_. john.in |_. john.out |_. Explicație |
| 1
16
|16
| Cel mai mare număr mai mic sau egal cu 16 care are o singură cifră 1 în reprezentarea în baza doi este chiar 16.
22
| 20
| Cel mai mare număr mai mic sau egal cu 22 care are exact două cifre 1 în reprezentarea în baza doi este 20.
deoarece 20[~(10)~]=10100[~(2)~], iar următorul număr ar fi 11000[~(2)~]=24[~(10)~], care ar fi prea mare.
|
| 2
16
284
| 1
| Avem un singur număr abundent, acela fiind 12, a cărui su a divizorilor stricți este 1+2+3+4+6=16.
| Avem o singură pereche de numere prietene mai mici sau egale cu 284, anume 220 și 284.
|
| 3
16
| 5
| Avem 5 numere ale căror reprezentări în baza doi au același număr de cifre 1 ca și suma divizorilor lor:
1[~(10)~] = 1[~(2)~], suma divizorilor este 1[~(10)~] = 1[~(2)~]
5[~(10)~] = 101[~(2)~], suma divizorilor este 1+5=6[~(10)~] = 110[~(2)~]
6[~(10)~] = 110[~(2)~], suma divizorilor este 1+2+3+6=12[~(10)~] = 1100[~(2)~]
10[~(10)~] = 1010[~(2)~], suma divizorilor este 1+2+5+10=18[~(10)~] = 10010[~(2)~]
13[~(10)~] = 1101[~(2)~], suma divizorilor este 1+13=14[~(10)~] = 1110[~(2)~]
15
| 10
| Avem 10 numere mai mici sau egale cu 15 a căror sumă a divizorilor proprii are reprezentarea în baza doi palindrom:
1, suma divizorilor este 0[~(10)~] = 0[~(2)~]
2, suma divizorilor este 1[~(10)~] = 1[~(2)~]
3, suma divizorilor este 1[~(10)~] = 1[~(2)~]
4, suma divizorilor este 1+2=3[~(10)~] = 11[~(2)~]
5, suma divizorilor este 1[~(10)~] = 1[~(2)~]
7, suma divizorilor este 1[~(10)~] = 1[~(2)~]
8, suma divizorilor este 1+2+4=7[~(10)~] = 111[~(2)~]
11, suma divizorilor este 1[~(10)~] = 1[~(2)~]
13, suma divizorilor este 1[~(10)~] = 1[~(2)~]
15, suma divizorilor este 1+3+5=9[~(10)~] = 1001[~(2)~]
|
| 1
20
| 16
| Cel mai mare număr mai mic sau egal cu 20 care are o singură cifră 1 în reprezentarea în baza doi este 16.
30
|24
| Cel mai mare număr mai mic sau egal cu 30 care are exact două cifre 1 în reprezentarea în baza doi este 24.
|
| 2
20
| 3
| Avem 3 numere abundente, 12, 18 și 20.
2000
| 2
| Avem două perechi de numere prietene mai mici sau egale cu 2000, anume 220, 284 și 1184, 1210.
|
| 3
20
| 6
| Avem 6 numere ale căror reprezentări în baza doi au același număr de
cifre 1 ca și suma divizorilor lor, 1, 5, 6, 10, 13, 17.
| 14
| Avem 14 numere mai mici sau egale cu 20 a căror sumă a divizorilor proprii are reprezentarea în baza doi palindrom.
|
== include(page="template/taskfooter" task_id="john") ==

Nu există diferențe între securitate.