Split a number into 3 parts such that none of the parts is divisible by 3
You are given a number ‘N’. Your task is to split this number into 3 positive integers x, y, and z, such that their sum is equal to ‘N’ and none of the 3 integers is a multiple of 3. Given that N>=2.
Examples:
Input : N = 10
Output : x = 1, y = 2, z = 7
Note that x + y + z = N and x, y & z are not divisible by N.
Input : 18
Output :x = 1, y = 1, z = 16
Approach:
To split N into 3 numbers we split N as
- If N is divisible by 3, then the numbers x, y, z can be 1, 1, and N-2, respectively. All x, y, and z are not divisible by 3. And (1)+(1)+(N-2)=N .
- If N is not divisible by 3 then N-3 will also not be divisible by 3. Therefore, we can have x=1, y=2, and z=N-3.Also, (1)+(2)+(N-3)=N .
C++
// CPP program to split a number into three parts such // than none of them is divisible by 3. #include <iostream> using namespace std; void printThreeParts( int N) { // Print x = 1, y = 1 and z = N - 2 if (N % 3 == 0) cout << " x = 1, y = 1, z = " << N - 2 << endl; // Otherwise, print x = 1, y = 2 and z = N - 3 else cout << " x = 1, y = 2, z = " << N - 3 << endl; } // Driver code int main() { int N = 10; printThreeParts(N); return 0; } |
Java
// Java program to split a number into three parts such // than none of them is divisible by 3. import java.util.*; class solution { static void printThreeParts( int N) { // Print x = 1, y = 1 and z = N - 2 if (N % 3 == 0 ) System.out.println( "x = 1, y = 1, z = " + (N- 2 )); // Otherwise, print x = 1, y = 2 and z = N - 3 else System.out.println( " x = 1, y = 2, z = " + (N- 3 )); } // Driver code public static void main(String args[]) { int N = 10 ; printThreeParts(N); } } |
Python3
# Python3 program to split a number into three parts such # than none of them is divisible by 3. def printThreeParts(N) : # Print x = 1, y = 1 and z = N - 2 if (N % 3 = = 0 ) : print ( " x = 1, y = 1, z = " ,N - 2 ) # Otherwise, print x = 1, y = 2 and z = N - 3 else : print ( " x = 1, y = 2, z = " ,N - 3 ) # Driver code if __name__ = = "__main__" : N = 10 printThreeParts(N) # This code is contributed by Ryuga |
C#
// C# program to split a number into three parts such // than none of them is divisible by 3. using System; public class GFG{ static void printThreeParts( int N) { // Print x = 1, y = 1 and z = N - 2 if (N % 3 == 0) Console.WriteLine( " x = 1, y = 1, z = " +(N - 2)); // Otherwise, print x = 1, y = 2 and z = N - 3 else Console.WriteLine( " x = 1, y = 2, z = " +(N - 3)); } // Driver code static public void Main (){ int N = 10; printThreeParts(N); } // This code is contributed by ajit. } |
PHP
<?php // PHP program to split a number into // three parts such than none of them // is divisible by 3. function printThreeParts( $N ) { // Print x = 1, y = 1 and z = N - 2 if ( $N % 3 == 0) echo " x = 1, y = 1, z = " . ( $N - 2) . "\n" ; // Otherwise, print x = 1, // y = 2 and z = N - 3 else echo " x = 1, y = 2, z = " . ( $N - 3) . "\n" ; } // Driver code $N = 10; printThreeParts( $N ); // This code is contributed by ita_c ?> |
Javascript
<script> // javascript program to split a number into three parts such // than none of them is divisible by 3. function printThreeParts(N) { // Print x = 1, y = 1 and z = N - 2 if (N % 3 == 0) document.write( "x = 1, y = 1, z = " + (N-2)); // Otherwise, print x = 1, y = 2 and z = N - 3 else document.write( " x = 1, y = 2, z = " + (N-3)); } // Driver code var N = 10; printThreeParts(N); // This code contributed by Princi Singh </script> |
Output:
x = 1, y = 2, z = 7
Time Complexity: O(1), since there is no loop or recursion.
Auxiliary Space: O(1), since no extra space has been taken.
Please Login to comment...