计算前5个完美数
完美数:完全数(Perfect number,又称完美数或完备数)是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
公式为:(2 ^ (n-1)) * (2 ^ n-1)
2 ^ n - 1 是个素数(梅森素数) 注意:n为素数 (11不算 2 ^ 11 - 1 =23*89 不是素数,所以素数11不能构成完全数)
代码:
#include<iostream>
using namespace std;
typedef long long ll;
int main()
{
ll n=5;
ll a[10]={2,3,5,7,13}; //素数11不能构成完全数
for(int i=0;i<n;i++)
{
//(2^(n-1))*(2^n-1)
cout<<((1<<(a[i]-1))*((1<<a[i])-1))<<endl;
}
return 0;
}
运行代码: