Given an integer N, the task is to find the count of total distinct remainders which can be obtained when N is divided by every element from the range [1, N].
Examples:
Input: N = 5
Output: 3
5 % 1 = 0
5 % 2 = 1
5 % 3 = 2
5 % 4 = 1
5 % 5 = 0
The distinct remainders are 0, 1 and 2.
Input: N = 44
Output: 22
Approach: It can be easily observed that for even values of N the number of distinct remainders will be N / 2 and for odd values of N it will be 1 + ?N / 2?.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach#include <bits/stdc++.h>using namespace std;// Function to return the count of distinct// remainders that can be obtained when// n is divided by every element// from the range [1, n]int distinctRemainders(int n){ // If n is even if (n % 2 == 0) return (n / 2); // If n is odd return (1 + (n / 2));}// Driver codeint main(){ int n = 5; cout << distinctRemainders(n); return 0;} |
Java
// Java implementation of the above approach class GFG { // Function to return the count of distinct// remainders that can be obtained when// n is divided by every element// from the range [1, n]static int distinctRemainders(int n){ // If n is even if (n % 2 == 0) return (n / 2); // If n is odd return (1 + (n / 2));}// Driver code public static void main(String[] args) { int n = 5; System.out.println(distinctRemainders(n));} } // This code is contributed by Mohit Kumar |
Python3
# Python3 implementation of the approach# Function to return the count of distinct # remainders that can be obtained when # n is divided by every element # from the range [1, n]def distinctRemainders(n): # If n is even if n % 2 == 0: return n//2 # If n is odd return ((n//2)+1)# Driver codeif __name__=="__main__": n = 5 print(distinctRemainders(n)) |
C#
// C# implementation of the above approach using System;class GFG{ // Function to return the count of distinct // remainders that can be obtained when // n is divided by every element // from the range [1, n] static int distinctRemainders(int n) { // If n is even if (n % 2 == 0) return (n / 2); // If n is odd return (1 + (n / 2)); } // Driver code public static void Main() { int n = 5; Console.WriteLine(distinctRemainders(n)); } }// This code is contributed by AnkitRai01 |
Javascript
<script>// Javascript implementation of the approach// Function to return the count of distinct// remainders that can be obtained when// n is divided by every element// from the range [1, n]function distinctRemainders(n){ // If n is even if (n % 2 == 0) return parseInt(n / 2); // If n is odd return (1 + parseInt(n / 2));}// Driver code let n = 5; document.write(distinctRemainders(n));</script> |
3
Time Complexity: O(1)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
