Find N % 4 (Remainder with 4) for a large value of N
Given a string str representing a large integer, the task is to find the result of N % 4.
Examples:
Input: N = 81
Output: 1
Input: N = 46234624362346435768440
Output: 0
Approach: The remainder of division by 4 is dependent on only the last 2 digits of a number, so instead of dividing N we divide only the last two digits of N and find the remainder.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to return s % n int findMod4(string s, int n) { // To store the number formed by // the last two digits int k; // If it contains a single digit if (n == 1) k = s[0] - '0' ; // Take last 2 digits else k = (s[n - 2] - '0' ) * 10 + s[n - 1] - '0' ; return (k % 4); } // Driver code int main() { string s = "81" ; int n = s.length(); cout << findMod4(s, n); return 0; } |
Java
// Java implementation of the approach class GFG { // Function to return s % n static int findMod4(String s, int n) { // To store the number formed by // the last two digits int k; // If it contains a single digit if (n == 1 ) k = s.charAt( 0 ) - '0' ; // Take last 2 digits else k = (s.charAt(n - 2 ) - '0' ) * 10 + s.charAt(n - 1 ) - '0' ; return (k % 4 ); } // Driver code public static void main(String[] args) { String s = "81" ; int n = s.length(); System.out.println(findMod4(s, n)); } } // This code is contributed by Code_Mech. |
Python3
# Python 3 implementation of the approach # Function to return s % n def findMod4(s, n): # To store the number formed by # the last two digits # If it contains a single digit if (n = = 1 ): k = ord (s[ 0 ]) - ord ( '0' ) # Take last 2 digits else : k = (( ord (s[n - 2 ]) - ord ( '0' )) * 10 + ord (s[n - 1 ]) - ord ( '0' )) return (k % 4 ) # Driver code if __name__ = = '__main__' : s = "81" n = len (s) print (findMod4(s, n)) # This code is contributed by # Surendra_Gangwar |
C#
// C# implementation of the approach using System; class GFG { // Function to return s % n static int findMod4( string s, int n) { // To store the number formed by // the last two digits int k; // If it contains a single digit if (n == 1) k = s[0] - '0' ; // Take last 2 digits else k = (s[n - 2]- '0' ) * 10 + s[n - 1] - '0' ; return (k % 4); } // Driver code public static void Main() { string s = "81" ; int n = s.Length; Console.WriteLine(findMod4(s, n)); } } // This code is contributed by Code_Mech. |
PHP
<?php // PHP implementation of the approach // Function to return s % n function findMod4( $s , $n ) { // To store the number formed by // the last two digits $k ; // If it contains a single digit if ( $n == 1) $k = $s [0] - '0' ; // Take last 2 digits else $k = ( $s [ $n - 2] - '0' ) * 10 + $s [ $n - 1] - '0' ; return ( $k % 4); } // Driver code { $s = "81" ; $n = strlen ( $s ); echo (findMod4( $s , $n )); } // This code is contributed by Code_Mech. |
1
Time Complexity: O(1)
Recommended Posts:
- Program to find remainder when large number is divided by r
- Program to find remainder when large number is divided by 11
- Remainder with 7 for large numbers
- Program to find remainder without using modulo or % operator
- Find remainder of array multiplication divided by n
- Find (a^b)%m where 'b' is very large
- Find (a^b)%m where 'a' is very large
- Find Last Digit of a^b for Large Numbers
- Find the value of XXXX.....(N times) % M where N is large
- Multiply large integers under large modulo
- Quotient - Remainder Sort
- Program for quotient and remainder of big number
- Using Chinese Remainder Theorem to Combine Modular equations
- Chinese Remainder Theorem | Set 2 (Inverse Modulo based Implementation)
- Sum of two large numbers
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.