First of all, we have the conclusion from Euclid that define an integer n, and if 2^n – 1 is a prime, the number 2^(n-1)*(2^n – 1) must be a Perfect Number.
Here follows my source code on finding 5 the smallest Perfect Number.It’s written by C++.
using namespace std; bool IsPrime (long long s) { for(long long i=2;i<sqrt((long double)s);i++) { if(s%i==0) return false; } return true; } long long Power(int n) { if(n!=0) return 2*Power(n-1); else return 1; } int main() { int cnt=0; for(int i=2;cnt<9;i++) { if(IsPrime(Power(i)-1)) cout<<++cnt<<") "<<power(i-1)*(Power(i)-1)<<endl; } return 0; }