Last night I discovered another cool mathematical concept akin to the Collatz conjecture - Lychrel numbers.

The idea of a lychrel number is pretty straightforward: Take a number, add its reverse, continue until you reach a palindrome number. If you never reach a palindrome, then this is a Lychrel number.

Something like this:

349 + 943 = 1292, 1292 + 2921 = 4213 4213 + 3124 = 7337 not lychrel

If you've ever done any theoretical computer science, you'll immediately spot a problem. This isn't a very good algorithm. Problem is with that "never" word in the description - an algorithm is a finite set of steps, when you need an infinite amount of steps to reach a conclusion that's ... not very useful.

Honestly I am not certain what class of problems lychrel numbers fall into. The "not a lychrel number" is a half-decidable problem. It will always tell you when *a number is not lychrel* but it will never terminate when it is. If my understanding is correct, this would make "is a lychrel number" an non-decidable problem.

Project Euler is kind enough to limit the problem a little bit and make it a fun algorithm to write before bed when your brain is half dead. *Find all lychrel candidates under 10,000 assuming it should never take more than 50 iterations.*

Solving *that* problem becomes rather trivial in Haskell:

reverse' = read . reverse . showpalindrome n = n == reverse' n-- max denotes max recursion depthlychrel n max| max <= 0 = True| palindrome$n+r = False| otherwise = lychrel (n+r) (max-1)where r = reverse' nlychrels max =length [x | x <- [1..max], lychrel x 50]

Oh and actually the first number that needs more than 50 iterations to converge into a palindrome is 10677, so the problem is pretty safely stated.

For a final bit of fun, the number 4994, itself a palindrome, is a lychrel candidate.

###### Related articles

- Collatz, Haskell and Memoization (swizec.com)
- All numbers lead to one (flowingdata.com)
- Rare Date: Today Is Once-in-10,000-Years Palindrome (livescience.com)
- problematic views, futuring maths. (mathsetc.wordpress.com)
- Why 11/11/11 is mathematically amazing (msnbc.msn.com)

## Learned something new?

Want to become an expert?

Here's how it works 👇

Leave your email and I'll send you thoughtfully written emails every week about **React**, **JavaScript**, and **your career**. Lessons learned over 20 years in the industry working with companies ranging from tiny startups to Fortune5 behemoths.

### Join Swizec's Newsletter

And get thoughtful letters 💌 on **mindsets, tactics, and technical skills** for your career. Real lessons from building production software. No bullshit.

"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"

**Have a burning question that you think I can answer?** I don't have all of the answers, but I have some! Hit me up on twitter or book a 30min ama for in-depth help.

**Ready to Stop copy pasting D3 examples and create data visualizations of your own?**
Learn how to build scalable dataviz components your whole team can understand
with React for Data Visualization

**Curious about Serverless and the modern backend?** Check out
Serverless Handbook, modern backend for the frontend engineer.

**Ready to learn how it all fits together and build a modern webapp from scratch?**
Learn how to launch a webapp and make your first 💰 on the side with ServerlessReact.Dev

**Want to brush up on your modern JavaScript syntax?** Check out my interactive cheatsheet: es6cheatsheet.com

**By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️**