Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Split a number into 3 parts such that none of the parts is divisible by 3

  • Difficulty Level : Easy
  • Last Updated : 15 Nov, 2021

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:  

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

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 



  1. 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 .
  2. 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)

Auxiliary Space: O(1)




My Personal Notes arrow_drop_up
Recommended Articles
Page :