Open In App

Smallest number greater than or equal to N divisible by K

Improve
Improve
Like Article
Like
Save
Share
Report

Given a number N and a number K, the task is to find the smallest number greater than or equal to N which is divisible by K.
Examples: 
 

Input: N = 45, K = 6
Output: 48
48 is the smallest number greater than or equal to 45
which is divisible by 6.
Input: N = 11, K = 3
Output: 12

 

Approach:

Approach to solve this problem would be to start from N and check each number one by one until we find a number that is divisible by K. We can use a while loop to keep incrementing N until we find a number that is divisible by K.

Here are the steps of approach:

  1. We start with N and check each number one by one until we find a number that is divisible by K.
  2. We use a while loop to keep incrementing N until we find a number that is divisible by K. 
  3. Once we find the smallest number greater than or equal to N that is divisible by K, we return it.
     

Below is the implementation of the above approach:

C++




// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the smallest number
// greater than or equal to N
// that is divisible by k
int findNum(int N, int K)
{
    while (N % K != 0) {
        N++;
    }
    return N;
}
 
// Driver code
int main()
{
    int N = 45, K = 6;
 
    cout << "Smallest number greater than or equal to " << N
        << "\nthat is divisible by " << K << " is " << findNum(N, K);
 
    return 0;
}


Java




public class Main {
    // Function to find the smallest number
    // greater than or equal to N
    // that is divisible by K
    public static int findNum(int N, int K) {
        while (N % K != 0) {
            N++; // Increment N until it is divisible by K
        }
        return N; // Return the smallest number divisible by K
    }
 
    public static void main(String[] args) {
        int N = 45, K = 6;
 
        // Call the findNum function to find the desired number
        int result = findNum(N, K);
 
        // Print the result to the console
        System.out.println("Smallest number greater than or equal to " + N +
                "\nthat is divisible by " + K + " is " + result);
    }
}


Python3




# Function to find the smallest number
# greater than or equal to N
# that is divisible by k
def find_num(N, K):
    while N % K != 0:
        N += 1
    return N
 
# Driver code
if __name__ == "__main__":
    N = 45
    K = 6
 
    print(f"Smallest number greater than or equal to {N} \nthat is divisible by {K} is {find_num(N, K)}")


C#




using System;
 
class Program
{
    // Function to find the smallest number
    // greater than or equal to N
    // that is divisible by K
    static int FindNum(int N, int K)
    {
        while (N % K != 0)
        {
            N++;
        }
        return N;
    }
 
    // Driver code
    static void Main(string[] args)
    {
        int N = 45, K = 6;
 
        Console.WriteLine($"Smallest number greater than or equal to {N} " +
            $"that is divisible by {K} is {FindNum(N, K)}");
    }
}


Javascript




// Function to find the smallest number
// greater than or equal to N
// that is divisible by K
function findNum(N, K) {
    while (N % K !== 0) {
        N++;
    }
    return N;
}
 
// Driver code
let N = 45;
let K = 6;
 
console.log(`Smallest number greater than or equal to ${N}\nthat is divisible by ${K} is ${findNum(N, K)}`);


Output

Smallest number greater than or equal to 45
that is divisible by 6 is 48





Time Complexity: O(K), where K is the divisor. The while loop will run at most K times before finding a number that is divisible by K.

Space Complexity: O(1), because we are only using a constant amount of extra space to store the input variables

Approach: The idea is to divide the N+K by K. If the remainder is 0 then print N else print N + K – remainder.
Below is the implementation of the above approach :
 

C++




// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the smallest number
// greater than or equal to N
// that is divisible by k
int findNum(int N, int K)
{
    int rem = (N + K) % K;
 
    if (rem == 0)
        return N;
    else
        return N + K - rem;
}
 
// Driver code
int main()
{
    int N = 45, K = 6;
 
    cout << "Smallest number greater than or equal to " << N
         << "\nthat is divisible by " << K << " is " << findNum(N, K);
 
    return 0;
}


Java




// Java implementation of the above approach
 
public class GFG{
 
    // Function to find the smallest number
    // greater than or equal to N
    // that is divisible by k
    static int findNum(int N, int K)
    {
        int rem = (N + K) % K;
     
        if (rem == 0)
            return N;
        else
            return N + K - rem;
    }
 
 
     // Driver Code
     public static void main(String []args){
          
        int N = 45, K = 6;
 
    System.out.println("Smallest number greater than or equal to " + N
          +"\nthat is divisible by " + K + " is " + findNum(N, K));
 
     }
     // This code is contributed by ANKITRAI1
}


Python




# Python 3 implementation of the
# above approach
 
# Function to find the smallest number
# greater than or equal to N
# that is divisible by k
def findNum(N, K):
    rem = (N + K) % K;
 
    if (rem == 0):
        return N
    else:
        return (N + K - rem)
 
# Driver Code
N = 45
K = 6
print('Smallest number greater than',
                   'or equal to' , N,
           'that is divisible by', K,
               'is' , findNum(45, 6))
 
# This code is contributed by Arnab Kundu


C#




// C# implementation of the above approach
 
public class GFG{
 
    // Function to find the smallest number
    // greater than or equal to N
    // that is divisible by k
    static int findNum(int N, int K)
    {
        int rem = (N + K) % K;
     
        if (rem == 0)
            return N;
        else
            return N + K - rem;
    }
 
 
    // Driver Code
    static void Main(){
         
        int N = 45, K = 6;
 
    System.Console.WriteLine("Smallest number greater than or equal to " + N
        +"\nthat is divisible by " + K + " is " + findNum(N, K));
 
    }
    // This code is contributed by mits
}


Javascript




<script>
 
// javascript implementation of the above approach
 
// Function to find the smallest number
    // greater than or equal to N
    // that is divisible by k
    function findNum(N , K)
    {
        var rem = (N + K) % K;
     
        if (rem == 0)
            return N;
        else
            return N + K - rem;
    }   
// Driver Code
 
          
var N = 45, K = 6;
 
document.write("Smallest number greater than or equal to " + N
  +"<br>that is divisible by " + K + " is " + findNum(N, K));
 
 
// This code contributed by shikhasingrajput
</script>


PHP




<?php
// PHP implementation of the above approach
 
// Function to find the smallest number
// greater than or equal to N that is
// divisible by k
function findNum($N, $K)
{
    $rem = ($N + $K) % $K;
 
    if ($rem == 0)
        return $N;
    else
        return $N + $K - $rem;
}
 
// Driver code
$N = 45; $K = 6;
 
echo "Smallest number greater than " .
                   "or equal to ", $N;
echo "\nthat is divisible by " , $K ,
            " is " , findNum($N, $K);
 
// This code is contributed by anuj_67
?>


Output

Smallest number greater than or equal to 45
that is divisible by 6 is 48





Time Complexity: O(1)

Auxiliary Space: O(1)



Last Updated : 04 Dec, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads