Given an integer ‘n’, the task is to check whether the sum of digits at the odd positions (from right to left) is prime or not.
If it is prime then, print “YES” or “NO” otherwise.
Examples:
Input: n = 123
Output: NO
As, 1 + 3 = 4 is not prime.
Input: n = 42
Output: YES
Since, 2 is a prime.
Approach: First, find the sum of the digits which are at odd positions i.e, 1, 3, 5, … (starting from right).
If the sum is prime then print ‘YES’ else print ‘NO’.
Below is the implementation of the above approach:
C++
// C++ program to do Primality test // for the sum of digits at // odd places of a number #include <bits/stdc++.h> using namespace std; // Function that return sum // of the digits at odd places int sum_odd( int n) { int sum = 0, pos = 1; while (n) { if (pos % 2 == 1) sum += n % 10; n = n / 10; pos++; } return sum; } // Function that returns true // if the number is prime // else false bool check_prime( int n) { // Corner cases if (n <= 1) return false ; if (n <= 3) return true ; // This condition is checked so that // we can skip middle five // numbers in the below loop if (n % 2 == 0 || n % 3 == 0) return false ; for ( int i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return false ; return true ; } // Driver code int main() { int n = 223; // Get the sum of the // digits at odd places int sum = sum_odd(n); if (check_prime(sum)) cout << "YES" << endl; else cout << "NO" << endl; return 0; } |
Java
// Java program to do Primality test // for the sum of digits at // odd places of a number import java.io.*; class GFG { // Function that return sum // of the digits at odd places static int sum_odd( int n) { int sum = 0 , pos = 1 ; while (n> 0 ) { if (pos % 2 == 1 ) sum += n % 10 ; n = n / 10 ; pos++; } return sum; } // Function that returns true // if the number is prime // else false static boolean check_prime( int n) { // Corner cases if (n <= 1 ) return false ; if (n <= 3 ) return true ; // This condition is checked so that // we can skip middle five // numbers in the below loop if (n % 2 == 0 || n % 3 == 0 ) return false ; for ( int i = 5 ; i * i <= n; i = i + 6 ) if (n % i == 0 || n % (i + 2 ) == 0 ) return false ; return true ; } // Driver code public static void main (String[] args) { int n = 223 ; // Get the sum of the // digits at odd places int sum = sum_odd(n); if (check_prime(sum)) System.out.println ( "YES" ); else System.out.println( "NO" ); } } |
Python3
# Python3 program to do Primality test # for the sum of digits at # odd places of a number # Function that return sum # of the digits at odd places def sum_odd(n): sums = 0 pos = 1 while (n! = 0 ): if (pos % 2 = = 1 ): sums + = n % 10 n = n / / 10 pos + = 1 return sums # Function to check if a # number is prime def check_prime(n): # Corner cases if (n < = 1 ): return False if (n < = 3 ): return True # This is checked so that we can skip # middle five numbers in below loop if (n % 2 = = 0 or n % 3 = = 0 ): return False for i in range ( 5 ,n, 6 ): if (n % i = = 0 or n % (i + 2 ) = = 0 ): return False return True #driver code n = 223 # Get the sum of the # digits at odd places sums = sum_odd(n) if (check_prime(sums)): print ( "YES" ) else : print ( "NO" ) #this code is improved by sahilshelangia |
C#
// C# program to do Primality test // for the sum of digits at // odd places of a number using System; public class GFG{ // Function that return sum // of the digits at odd places static int sum_odd( int n) { int sum = 0, pos = 1; while (n>0) { if (pos % 2 == 1) sum += n % 10; n = n / 10; pos++; } return sum; } // Function that returns true // if the number is prime // else false static bool check_prime( int n) { // Corner cases if (n <= 1) return false ; if (n <= 3) return true ; // This condition is checked so that // we can skip middle five // numbers in the below loop if (n % 2 == 0 || n % 3 == 0) return false ; for ( int i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return false ; return true ; } // Driver code static public void Main (){ int n = 223; // Get the sum of the // digits at odd places int sum = sum_odd(n); if (check_prime(sum)) Console.WriteLine( "YES" ); else Console.WriteLine( "NO" ); } } |
PHP
<?php // PHP program to do Primality test // for the sum of digits at odd // places of a number // Function that return sum // of the digits at odd places function sum_odd( $n ) { $sum = 0; $pos = 1; while ( $n ) { if ( $pos % 2 == 1) $sum += $n % 10; $n = (int)( $n / 10); $pos ++; } return $sum ; } // Function that returns true // if the number is prime // else false function check_prime( $n ) { // Corner cases if ( $n <= 1) return false; if ( $n <= 3) return true; // This condition is checked so // that we can skip middle five // numbers in the below loop if ( $n % 2 == 0 || $n % 3 == 0) return false; for ( $i = 5; $i * $i <= $n ; $i = ( $i + 6)) if ( $n % $i == 0 || $n % ( $i + 2) == 0) return false; return true; } // Driver code $n = 223; // Get the sum of the // digits at odd places $sum = sum_odd( $n ); if (check_prime( $sum )) echo "YES" ; else echo "NO" ; // This code is contributed by ajit ?> |
Javascript
<script> // JavaScript program to do Primality test // for the sum of digits at // odd places of a number // Function that return sum // of the digits at odd places function sum_odd(n) { let sum = 0, pos = 1; while (n) { if (pos % 2 == 1) sum += n % 10; n = Math.floor(n / 10); pos++; } return sum; } // Function that returns true // if the number is prime // else false function check_prime(n) { // Corner cases if (n <= 1) return false ; if (n <= 3) return true ; // This condition is checked so that // we can skip middle five // numbers in the below loop if (n % 2 == 0 || n % 3 == 0) return false ; for (let i = 5; i * i <= n; i = i + 6) if (n % i == 0 || n % (i + 2) == 0) return false ; return true ; } // Driver code let n = 223; // Get the sum of the // digits at odd places let sum = sum_odd(n); if (check_prime(sum)) document.write( "YES" + "<br>" ); else document.write( "NO" + "<br>" ); // This code is contributed by Surbhi Tyagi. </script> |
YES
Time Complexity: O(log10n + sqrt(n))
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!