#include <iostream>
#include <vector>
#include <set>
#include <cmath>
using namespace std;
#define NUM 10000
void
aliquot(int n, set<int> *pset_pf)
{
pset_pf->insert(1);
if(n == 2)
{
return;
}
bool *t = new bool [n];
memset(t, false, n);
t[1] = true;
for (int i = 2; i < n; i++)
{
if (n%i == 0 && !t[i])
{
t[i] = true;
t[n/i] = true;
}
if (t[i])
{
pset_pf->insert(i);
pset_pf->insert(n/i);
}
}
delete [] t;
}
int
pfSum(set<int> *pv_pf)
{
int sum = 0;
for (set<int>::iterator it = pv_pf->begin(), end = pv_pf->end(); it != end; it++)
{
sum += *it;
}
return sum;
}
int
main(int argc, char ** argv)
{
int ans = 0;
for (int n = 2; n < NUM; n++)
{
set<int> v_pf;
aliquot(n, &v_pf);
int sum = pfSum(&v_pf);
if (n < sum && sum <= NUM)
{
set<int> v_tmp;
aliquot(sum, &v_tmp);
int tmpSum = pfSum(&v_tmp);
if (tmpSum == n)
{
ans += n + sum;
}
}
}
cout << ans << endl;
return 0;
}