#include <iostream>
using namespace std;
int main()
{
const int N = 10000;
int nDivisorsDum[N];
fill( nDivisorsDum, nDivisorsDum+N, 0 );
for ( int i = 1; i < N; ++i )
{
for ( int j = i + i; j < N; j += i )
{
nDivisorsDum[j] += i;
}
}
int nSum = 0;
for ( int i = 1; i < N; ++i )
{
if ( nDivisorsDum[i] < N && nDivisorsDum[i] != i && nDivisorsDum[nDivisorsDum[i]] == i )
{
nSum += i;
}
}
cout << nSum << endl;
return 0;
}
http://projecteuler.net/problem=21 [Answer:31626]
最新推荐文章于 2023-11-15 12:12:51 发布