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 code int 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 code if __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> |
Output:
3
Time Complexity: O(1)
Auxiliary Space: O(1)
Recommended Articles