# Generate number with given operation and check if it is palindrome

Given an integer N the task is to create a string out of it by repeating the number such that the length of the resultant string is equal to the sum of the digits in the original number.
For eg: If the number is 61 and the sum of the digits is 6 + 1 = 7 so the string generated after repeating 61 will be of 7 length i.e. 6161616.

Examples:

Input: N = 10101
Output: Yes
Length of the string is given by sum of the digits i.e. 1 + 0 + 1 + 0 + 1 = 3.
So the resultant string is “101” which is a palindrome.

Input: N = 123
Output: No
Length of the string will be 1 + 2 3 = 6.
So the resultant string is “123123” which is not a palindrome.

## Recommended: Please solve it on “PRACTICE” first, before moving on to the solution.

Approach:

• Find the sum of the digits of N and repeat the number till the length of the string becomes equal to this sum.
• Now check if the resultant string is a palindrome or not.
• If it is a palindrome then print Yes.
• Else print No.

Below is the implementation of the above approach:

## C++

 `// CPP implementation of the approach ` `#include ` `using` `namespace` `std; ` ` `  `    ``// Function that returns true if str is a palindrome ` `    ``bool` `isPalindrome(string str) ` `    ``{ ` `        ``int` `len = str.length(); ` `        ``for` `(``int` `i = 0; i < len / 2; i++) ` `        ``{ ` `            ``if` `(str[i] != str[len - 1 - i]) ` `                ``return` `false``; ` `        ``} ` ` `  `        ``return` `true``; ` `    ``} ` ` `  `    ``// Function that returns true if the  ` `    ``// generated string is a palindrome ` `    ``bool` `createStringAndCheckPalindrome(``int` `N) ` `    ``{ ` ` `  `        ``// sub contains N as a string ` `        ``ostringstream out; ` `        ``out << N; ` `        ``string result = out.str(); ` `     `  `        ``string sub = ``""` `+ result, res_str = ``""``; ` ` `  `        ``int` `sum = 0; ` ` `  `        ``// Calculate the sum of the digits ` `        ``while` `(N > 0)  ` `        ``{ ` `            ``int` `digit = N % 10; ` `            ``sum += digit; ` `            ``N = N / 10; ` `        ``} ` ` `  `        ``// Repeat the substring until the length ` `        ``// of the resultant string < sum ` `        ``while` `(res_str.length() < sum) ` `            ``res_str += sub; ` ` `  `        ``// If length of the resultant string exceeded sum ` `        ``// then take substring from 0 to sum - 1 ` `        ``if` `(res_str.length() > sum) ` `            ``res_str = res_str.substr(0, sum); ` ` `  `        ``// If the generated string is a palindrome ` `        ``if` `(isPalindrome(res_str)) ` `            ``return` `true``; ` ` `  `        ``return` `false``; ` `    ``} ` ` `  `    ``// Driver code ` `    ``int` `main() ` `    ``{ ` `        ``int` `N = 10101; ` `        ``if` `(createStringAndCheckPalindrome(N)) ` `            ``cout << (``"Yes"``); ` `        ``else` `            ``cout << (``"No"``); ` `    ``} ` `     `  `// This code is contributed by ` `// Shashank_Sharma `

## Java

 `// Java implementation of the approach ` `class` `GFG { ` ` `  `    ``// Function that returns true if str is a palindrome ` `    ``static` `boolean` `isPalindrome(String str) ` `    ``{ ` `        ``int` `len = str.length(); ` `        ``for` `(``int` `i = ``0``; i < len / ``2``; i++) { ` `            ``if` `(str.charAt(i) != str.charAt(len - ``1` `- i)) ` `                ``return` `false``; ` `        ``} ` ` `  `        ``return` `true``; ` `    ``} ` ` `  `    ``// Function that returns true if the  ` `    ``// generated string is a palindrome ` `    ``static` `boolean` `createStringAndCheckPalindrome(``int` `N) ` `    ``{ ` ` `  `        ``// sub contains N as a string ` `        ``String sub = ``""` `+ N, res_str = ``""``; ` ` `  `        ``int` `sum = ``0``; ` ` `  `        ``// Calculate the sum of the digits ` `        ``while` `(N > ``0``) { ` `            ``int` `digit = N % ``10``; ` `            ``sum += digit; ` `            ``N = N / ``10``; ` `        ``} ` ` `  `        ``// Repeat the substring until the length ` `        ``// of the resultant string < sum ` `        ``while` `(res_str.length() < sum) ` `            ``res_str += sub; ` ` `  `        ``// If length of the resultant string exceeded sum ` `        ``// then take substring from 0 to sum - 1 ` `        ``if` `(res_str.length() > sum) ` `            ``res_str = res_str.substring(``0``, sum); ` ` `  `        ``// If the generated string is a palindrome ` `        ``if` `(isPalindrome(res_str)) ` `            ``return` `true``; ` ` `  `        ``return` `false``; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``int` `N = ``10101``; ` `        ``if` `(createStringAndCheckPalindrome(N)) ` `            ``System.out.println(``"Yes"``); ` `        ``else` `            ``System.out.println(``"No"``); ` `    ``} ` `} `

## Python 3

 `# Python 3 implementation of the approach ` ` `  `# Function that returns true if  ` `# str is a palindrome ` `def` `isPalindrome(s): ` ` `  `    ``l ``=` `len``(s) ` `    ``for` `i ``in` `range``(l ``/``/` `2``): ` `        ``if` `(s[i] !``=` `s[l ``-` `1` `-` `i]): ` `            ``return` `False` `    ``return` `True` ` `  `# Function that returns true if the  ` `# generated string is a palindrome ` `def` `createStringAndCheckPalindrome(N): ` `     `  `    ``# sub contains N as a string ` `    ``sub ``=` `"" ``+` `chr``(N) ` `    ``res_str ``=` `"" ` ` `  `    ``sum` `=` `0` ` `  `    ``# Calculate the sum of the digits ` `    ``while` `(N > ``0``) : ` `        ``digit ``=` `N ``%` `10` `        ``sum` `+``=` `digit ` `        ``N ``=` `N ``/``/` `10` ` `  `    ``# Repeat the substring until the length ` `    ``# of the resultant string < sum ` `    ``while` `(``len``(res_str) < ``sum``): ` `        ``res_str ``+``=` `sub ` ` `  `    ``# If length of the resultant string exceeded  ` `    ``# sum then take substring from 0 to sum - 1 ` `    ``if` `(``len``(res_str) > ``sum``): ` `        ``res_str ``=` `res_str[``0``: ``sum``] ` ` `  `    ``# If the generated string is a palindrome ` `    ``if` `(isPalindrome(res_str)): ` `        ``return` `True` ` `  `    ``return` `False` ` `  `# Driver code ` `if` `__name__ ``=``=` `"__main__"``: ` `     `  `    ``N ``=` `10101` `    ``if` `(createStringAndCheckPalindrome(N)): ` `        ``print``(``"Yes"``) ` `    ``else``: ` `        ``print``(``"No"``) ` ` `  `# This code is contributed by ita_c `

## C#

 `// C# implementation of the approach  ` ` `  `using` `System ; ` ` `  `class` `GFG {  ` ` `  `    ``// Function that returns true if str is a palindrome  ` `    ``static` `bool` `isPalindrome(``string` `str)  ` `    ``{  ` `        ``int` `len = str.Length;  ` `        ``for` `(``int` `i = 0; i < len / 2; i++) {  ` `            ``if` `(str[i] != str[len - 1 - i])  ` `                ``return` `false``;  ` `        ``}  ` ` `  `        ``return` `true``;  ` `    ``}  ` ` `  `    ``// Function that returns true if the  ` `    ``// generated string is a palindrome  ` `    ``static` `bool` `createStringAndCheckPalindrome(``int` `N)  ` `    ``{  ` ` `  `        ``// sub contains N as a string  ` `        ``string` `sub = ``""` `+ N, res_str = ``""``;  ` ` `  `        ``int` `sum = 0;  ` ` `  `        ``// Calculate the sum of the digits  ` `        ``while` `(N > 0) {  ` `            ``int` `digit = N % 10;  ` `            ``sum += digit;  ` `            ``N = N / 10;  ` `        ``}  ` ` `  `        ``// Repeat the substring until the length  ` `        ``// of the resultant string < sum  ` `        ``while` `(res_str.Length< sum)  ` `            ``res_str += sub;  ` ` `  `        ``// If length of the resultant string exceeded sum  ` `        ``// then take substring from 0 to sum - 1  ` `        ``if` `(res_str.Length > sum)  ` `            ``res_str = res_str.Substring(0, sum);  ` ` `  `        ``// If the generated string is a palindrome  ` `        ``if` `(isPalindrome(res_str))  ` `            ``return` `true``;  ` ` `  `        ``return` `false``;  ` `    ``}  ` ` `  `    ``// Driver code  ` `    ``public` `static` `void` `Main()  ` `    ``{  ` `        ``int` `N = 10101;  ` `        ``if` `(createStringAndCheckPalindrome(N))  ` `            ``Console.WriteLine(``"Yes"``);  ` `        ``else` `            ``Console.WriteLine(``"No"``);  ` `    ``}  ` `    ``// This code is contributed by Ryuga ` `}  `

Output:

```Yes
```

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.