În matematică, un număr perfect este un număr natural care este egal cu suma tuturor divizorilor săi, exceptându-se el însuși. Primul număr perfect este 6, deoarece divizorii săi sunt 1, 2 si 3, iar suma acestora este 6. Următorul număr perfect este 28, care are divizorii 1, 2, 4, 7 și 14, iar suma acestora este 28.
Aici este un program C++ care verifică dacă un număr introdus de utilizator este un număr perfect:
Programul primește un număr de la utilizator, apoi apelam funcția este NumarPerfect care verifica dacă numărul este perfect sau nu. Dacă numărul este perfect, programul afișează mesajul „Numărul este un număr perfect.” și dacă nu, programul afișează mesajul „Numărul nu este un număr perfect.”
Euclid a observat că primele patru numere perfecte (menționate mai sus) sunt date de formula:
, unde n ia valorile 2, 3, 5, 7.
Mai mult, Euclid observă că pentru că:
ca să fie număr perfect trebuie ca să fie număr prim (acestea sunt de fapt cunoscute ca numerele prime ale lui Mersenne).
Euler a demonstrat că în acest mod pot fi obținute toate numerele perfecte pare.
Până în prezent, au fost descoperite doar câteva numere perfecte, dintre care primele patru sunt: 6, 28, 496 și 8128. Se crede că există un număr infinit de numere perfecte, dar acestea sunt foarte rare și se găsesc doar la intervale regulate.
În continuare aveți un program C++ în care vom găsi numărul perfect dintr-un interval dat.