Given two integers
and
, the task is to find the sum of all the palindromic numbers within the range [L, R] which are of odd length.
Examples:
Input: L = 10, R = 130
Output: 333
101 + 111 + 121 = 333
Input: L = 110, R = 1130
Output: 49399
Approach: Iterate from
to
and for every number check whether it is a palindrome and of odd length. If yes then add it to the sum. Finally print the value of the sum in the end.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
bool isPalindrome( int num)
{
int reverse_num = 0, remainder, temp;
temp = num;
while (temp != 0) {
remainder = temp % 10;
reverse_num = reverse_num * 10 + remainder;
temp /= 10;
}
if (reverse_num == num) {
return true ;
}
return false ;
}
bool isOddLength( int num)
{
int count = 0;
while (num > 0) {
num /= 10;
count++;
}
if (count % 2 != 0) {
return true ;
}
return false ;
}
long sumOfAllPalindrome( int L, int R)
{
long sum = 0;
if (L <= R)
for ( int i = L; i <= R; i++) {
if (isPalindrome(i) && isOddLength(i)) {
sum += i;
}
}
return sum;
}
int main()
{
int L = 110, R = 1130;
cout << " " << sumOfAllPalindrome(L, R) << endl;
}
|
C
#include <stdbool.h>
#include <stdio.h>
bool isPalindrome( int num)
{
int reverse_num = 0, remainder, temp;
temp = num;
while (temp != 0) {
remainder = temp % 10;
reverse_num = reverse_num * 10 + remainder;
temp /= 10;
}
if (reverse_num == num) {
return true ;
}
return false ;
}
bool isOddLength( int num)
{
int count = 0;
while (num > 0) {
num /= 10;
count++;
}
if (count % 2 != 0) {
return true ;
}
return false ;
}
long sumOfAllPalindrome( int L, int R)
{
long sum = 0;
if (L <= R)
for ( int i = L; i <= R; i++) {
if (isPalindrome(i) && isOddLength(i)) {
sum += i;
}
}
return sum;
}
int main()
{
int L = 110, R = 1130;
printf ( "%ld" , sumOfAllPalindrome(L, R));
}
|
Java
class GFG {
static boolean isPalindrome( int num)
{
int reverse_num = 0 , remainder, temp;
temp = num;
while (temp != 0 ) {
remainder = temp % 10 ;
reverse_num = reverse_num * 10 + remainder;
temp /= 10 ;
}
if (reverse_num == num) {
return true ;
}
return false ;
}
static boolean isOddLength( int num)
{
int count = 0 ;
while (num > 0 ) {
num /= 10 ;
count++;
}
if (count % 2 != 0 ) {
return true ;
}
return false ;
}
static long sumOfAllPalindrome( int L, int R)
{
long sum = 0 ;
if (L <= R)
for ( int i = L; i <= R; i++) {
if (isPalindrome(i) && isOddLength(i)) {
sum += i;
}
}
return sum;
}
public static void main(String[] args)
{
int L = 110 , R = 1130 ;
System.out.println(sumOfAllPalindrome(L, R));
}
}
|
Python3
def isPalindrome(num):
reverse_num = 0
temp = num
while (temp ! = 0 ):
remainder = temp % 10
reverse_num = reverse_num * 10 + remainder
temp = int (temp / 10 )
if (reverse_num = = num):
return True
return False
def isOddLength(num):
count = 0
while (num > 0 ):
num = int (num / 10 )
count + = 1
if (count % 2 ! = 0 ):
return True
return False
def sumOfAllPalindrome(L, R):
sum = 0
if (L < = R):
for i in range (L, R + 1 , 1 ):
if (isPalindrome(i) and isOddLength(i)):
sum + = i
return sum
if __name__ = = '__main__' :
L = 110
R = 1130
print (sumOfAllPalindrome(L, R))
|
C#
using System;
public class GFG {
static bool isPalindrome( int num)
{
int reverse_num = 0, remainder, temp;
temp = num;
while (temp != 0) {
remainder = temp % 10;
reverse_num = reverse_num * 10 + remainder;
temp /= 10;
}
if (reverse_num == num) {
return true ;
}
return false ;
}
static bool isOddLength( int num)
{
int count = 0;
while (num > 0) {
num /= 10;
count++;
}
if (count % 2 != 0) {
return true ;
}
return false ;
}
static long sumOfAllPalindrome( int L, int R)
{
long sum = 0;
if (L <= R)
for ( int i = L; i <= R; i++) {
if (isPalindrome(i) && isOddLength(i)) {
sum += i;
}
}
return sum;
}
public static void Main(String[] args)
{
int L = 110, R = 1130;
Console.WriteLine(sumOfAllPalindrome(L, R));
}
}
|
PHP
<?php
function isPalindrome( $num )
{
$reverse_num = 0;
$remainder ;
$temp ;
$temp = $num ;
while ( $temp != 0)
{
$remainder = $temp % 10;
$reverse_num = $reverse_num * 10 +
$remainder ;
$temp = (int)( $temp / 10);
}
if ( $reverse_num == $num )
{
return true;
}
return false;
}
function isOddLength( $num )
{
$count = 0;
while ( $num > 0)
{
$num = (int)( $num / 10);
$count ++;
}
if ( $count % 2 != 0)
{
return true;
}
return false;
}
function sumOfAllPalindrome( $L , $R )
{
$sum = 0;
if ( $L <= $R )
for ( $i = $L ; $i <= $R ; $i ++)
{
if (isPalindrome( $i ) && isOddLength( $i ))
{
$sum += $i ;
}
}
return $sum ;
}
$L = 110;
$R = 1130;
echo sumOfAllPalindrome( $L , $R );
?>
|
Javascript
<script>
function isPalindrome(num)
{
let reverse_num = 0, remainder, temp;
temp = num;
while (temp != 0) {
remainder = temp % 10;
reverse_num = reverse_num * 10 + remainder;
temp = Math.floor(temp/10);
}
if (reverse_num == num) {
return true ;
}
return false ;
}
function isOddLength(num)
{
let count = 0;
while (num > 0) {
num = Math.floor(num/10);
count++;
}
if (count % 2 != 0) {
return true ;
}
return false ;
}
function sumOfAllPalindrome(L,R)
{
let sum = 0;
if (L <= R)
for (let i = L; i <= R; i++) {
if (isPalindrome(i) && isOddLength(i)) {
sum += i;
}
}
return sum;
}
let L = 110, R = 1130;
document.write(sumOfAllPalindrome(L, R));
</script>
|
Time Complexity: O((R – L) * log10(R – L))
Auxiliary Space: O(1)