this post was submitted on 06 Jun 2024
230 points (100.0% liked)

196

16712 readers
3092 users here now

Be sure to follow the rule before you head out.

Rule: You must post before you leave.

^other^ ^rules^

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Xtallll@lemmy.blahaj.zone 24 points 6 months ago (1 children)
[–] Leate_Wonceslace@lemmy.dbzer0.com 9 points 6 months ago* (last edited 6 months ago) (2 children)

31521281 = 11 × 17 × 59 × 2857

11 × 17 = 187

11 × 59 = 649

11 × 2857 = 31427

17 × 59 = 10003

17 × 2857 = 48569

59 × 2857 = 168563

17 × 59 × 2857 = 2865571

11 × 59 × 2857 = 1854193

11 × 17 × 2857 = 534259

11 × 17 × 59 = 11033

11+17+59+2857+11033+534259+1854193+2865571+168563+ 48569+10003+31427+649+187=5527398≠31521281

[–] cypherpunks@lemmy.ml 6 points 6 months ago* (last edited 6 months ago)

17 × 59 = 10003

you've got an extra zero in there, and you forgot the 1, but the rest of your divisors match my crude brute-force approach:

>>> n=31521281
>>> d = [ x for x in range(1,n//2+1) if not n%x ]
>>> d
[1, 11, 17, 59, 187, 649, 1003, 2857, 11033, 31427, 48569, 168563, 534259, 1854193, 2865571]
>>> yours=list(map(int,"11+17+59+2857+11033+534259+1854193+2865571+168563+48569+10003+31427+649+187".split("+")))
>>> set(yours) - set(d)
{10003}
>>> set(d) - set(yours)
{1, 1003}
>>> sum(d)
5518399

same conclusion though: 5518399 also ≠ 31521281

bonus nonsense

>>> isperfect = lambda n: n == sum(x for x in range(1,n//2+1) if not n%x)
>>> [n for n in range(1, 10000) if isperfect(n)]
[6, 28, 496, 8128]

(from https://oeis.org/A000396 i see the next perfect number after 8128 is 33550336 which is too big for me to wait for the naive approach above to test...)

spoiler more bonus nonsense

>>> divisors_if_perfect = lambda n: n == sum(d:=[x for x in range(1,n//2+1) if not n%x]) and d
>>> print("\n".join(f"{n:>5} == sum{tuple(d)}" for n in range(10000) if (d:=divisors_if_perfect(n))))
    6 == sum(1, 2, 3)
   28 == sum(1, 2, 4, 7, 14)
  496 == sum(1, 2, 4, 8, 16, 31, 62, 124, 248)
 8128 == sum(1, 2, 4, 8, 16, 32, 64, 127, 254, 508, 1016, 2032, 4064)

:::

[–] yetAnotherUser@feddit.de 1 points 6 months ago

What about 2^31521281 - 1, I'm pretty sure that's a perfect odd number