using System;
using System.Collections.Generic;
using System.Linq;
public class Test
{
static void Main()
{
var sum = 0L;
for (int i = 1; i <= 10000; i++)
{
long tmp;
if ((tmp = GetDivisorSum(i)) > i && GetDivisorSum(tmp) == i)
{
sum += tmp + i;
}
}
Console.WriteLine(sum);
}
static long GetDivisorSum(long value)
{
var prime = new List<int>();
var devisor = 2;
var given = value;
if (value <= 0)
return 0;
if (value == 1)
return 1;
while (value != 1)
{
if (value % devisor == 0)
{
prime.Add(devisor);
value /= devisor;
}
else
devisor++;
}
return prime.GroupBy(x => x)
.Select(x => ((long)Math.Pow(x.Key, x.Count() + 1) - 1) / (x.Key - 1))
.Aggregate((x, y) => x * y) - given;
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpwdWJsaWMgY2xhc3MgVGVzdAp7CglzdGF0aWMgdm9pZCBNYWluKCkKICAgICAgICB7CiAgICAgICAgICAgIHZhciBzdW0gPSAwTDsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gMTAwMDA7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbG9uZyB0bXA7CiAgICAgICAgICAgICAgICBpZiAoKHRtcCA9IEdldERpdmlzb3JTdW0oaSkpID4gaSAmJiBHZXREaXZpc29yU3VtKHRtcCkgPT0gaSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzdW0gKz0gdG1wICsgaTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShzdW0pOwogICAgICAgIH0KCiAgICAgICAgc3RhdGljIGxvbmcgR2V0RGl2aXNvclN1bShsb25nIHZhbHVlKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHByaW1lID0gbmV3IExpc3Q8aW50PigpOwogICAgICAgICAgICB2YXIgZGV2aXNvciA9IDI7CiAgICAgICAgICAgIHZhciBnaXZlbiA9IHZhbHVlOwogICAgICAgICAgICBpZiAodmFsdWUgPD0gMCkKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICBpZiAodmFsdWUgPT0gMSkKICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICB3aGlsZSAodmFsdWUgIT0gMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKHZhbHVlICUgZGV2aXNvciA9PSAwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHByaW1lLkFkZChkZXZpc29yKTsKICAgICAgICAgICAgICAgICAgICB2YWx1ZSAvPSBkZXZpc29yOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGRldmlzb3IrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcHJpbWUuR3JvdXBCeSh4ID0+IHgpCiAgICAgICAgICAgICAgICAuU2VsZWN0KHggPT4gKChsb25nKU1hdGguUG93KHguS2V5LCB4LkNvdW50KCkgKyAxKSAtIDEpIC8gKHguS2V5IC0gMSkpCiAgICAgICAgICAgICAgICAuQWdncmVnYXRlKCh4LCB5KSA9PiB4ICogeSkgLSBnaXZlbjsKICAgICAgICB9Cn0=