**Lychrel numbers** are natural numbers that can never form a palindrome after an iterative process of adding the number to its reverse. The first few numbers that fail to form a palindrome are known as lychrel numbers.

- To determine if a number is lychrel, check if the number is a palindrome or not.
- If the number is a palindrome, the number is not a lychrel; otherwise, the number is added to its reverse and the new number is checked as a palindrome.
- The process is repeated until a palindrome is found.
- For example, the number 35 is not a palindrome. In the first iteration, 35 is added to 53 to form 88. The number 88 is a palindrome, therefore it takes one iteration to prove that 35 is not a lychrel.

The following code demonstrates how to find lychrel numbers in C++:

#include <iostream>using namespace std;int reverse(int num){int reversed = 0;while(num>0){int mod = num%10;reversed = (reversed*10) + mod;num = num/10;}return reversed;}void isLychrel(int num, int max){//variable that holds 0 if lychrel and 1 if notint lychrel = 0;//duplicate the number for checking laterint num_temp=num;while(num>0){// get the reverseint palindrome = reverse(num);// compare with originalif(palindrome == num){// set the check to 1 and exit looplychrel = 1;break;}// if not a palindrom, reverse the number and add to the original numbernum = reverse(num) + num;// decrease the iteration countmax--;}// display resultsif(lychrel){cout<< "The number "<<num_temp<<" is not lycheral."<<endl;}else{cout<< "The number "<<num_temp<<" is lycheral."<<endl;}}int main() {int max = 10;int num_1 = 35;int num_2 = 295;//check if the number is lychrel or notisLychrel(num_1, max);isLychrel(num_2, max);}

For the sake of implementation, the above code uses a maximum number to limit the iterations. If a palindrome is found within the limit, it is not lychrel.

- The program is implemented for two numbers, 35 and 295.
- The program calls the
`isLychrel`

function, which performs iterations until it finds a palindrome or reaches the maximum limit of iterations. - The
`isLychrel`

function calls the`reverse`

function and compares the returned value with the original value to check if the original number is a palindrome or not. - If the number is not a palindrome, the program calls the
`reverse`

function again, adds the returned value to the original number, and repeats the process.

Copyright ©2024 Educative, Inc. All rights reserved

TRENDING TOPICS