Find value of (1^n + 2^n + 3^n + 4^n ) mod 5

07 Apr, 2021
You are given an positive integer n. You have to find the value of (1n +2n + 3n + 4n ) mod 5. Note : Value of n may be very large of order 1015. Examples:  
Input : n = 4
Output : 4
Explanation : (14 + 24 + 34 + 44)mod 5 = (1+16+81+256)mod 5 = 354 mod 5 = 4

Input : n = 2
Output : 0
Explanation : (12 + 22 + 32 + 42)mod 5 = (1+4+9+16)mod 5 = 30 mod 5 = 0
 
Basic Approach : If you will solve this question with a very basic approach of finding value of (1n +2n + 3n + 4n ) and then finding its modulo value for 5, you will certainly get your answer but for the larger value of n we must got wrong answer as you will be unable to store value of (1n +2n + 3n + 4n ) properly. Better and Proper Approach : Before proceeding to solution lets go through some of periodical properties of power of 2, 3 & 4.  
f(n) = 2n is periodical for n = 4 in terms of last digit. i.e. last digit of 2n always repeat for next 4th value of n. (ex: 2, 4, 8, 16, 32, 64...)
f(n) = 3n is periodical for n = 4 in terms of last digit. i.e. last digit of 3n always repeat for next 4th value of n.(ex: 3, 9, 27, 81, 243, 729...)
f(n) = 4n is periodical for n = 2 in terms of last digit. i.e. last digit of 4n always repeat for next 2nd value of n.(ex: 4, 16, 64, 256..)
1n is going to be 1 always, independent of n.
So, If we will have a close look for periodicity of f(n) = (1n +2n + 3n + 4n ) we will get that its periodicity is also 4 and its last digits occurs as :  
for n = 1, f(n) = 10
for n = 2, f(n) = 30
for n = 3, f(n) = 100
for n = 4, f(n) = 354
for n = 5, f(n) = 1300
Observing above periodicity we can see that if (n%4==0) result of f(n)%5 is going to be 4 other wise result = 0. So, rather than calculating actual value of f(n) and then obtaining its value with mod 5 we can easily get result only be examine value of n.  
C++
Java
Python
C#
PHP
Javascript
// Program to find value of f(n)%5#include <bits/stdc++.h>using namespace std; // function for obtaining remainderint fnMod(int n){    // calculate res based on value of n    return (n % 4) ? 0 : 4;} // driver programint main(){    int n = 43;    cout << fnMod(n) << endl;    n = 44;    cout << fnMod(n);    return 0;}
// Program to find value of f(n)% 5 class GFG{    // function for obtaining remainder    static int fnMod(int n)    {        // calculate res based on value of n        return (n % 4 != 0) ? 0 : 4;    }         // Driver code    public static void main (String[] args)    {        int n = 43;        System.out.println(fnMod(n));        n = 44;        System.out.print(fnMod(n));    }} // This code is contributed by Anant Agarwal.
# program to find f(n) mod 5def fnMod (n):    res = 4 if (n % 4 == 0) else 0    return res # driver sectionn = 43print (fnMod(n))n = 44print (fnMod(n))
// C# Program to find value of f(n) % 5using System; class GFG {         // function for obtaining remainder    static int fnMod(int n)    {        // calculate res based on value of n        return (n % 4 != 0) ? 0 : 4;    }         // Driver code    public static void Main ()    {        int n = 43;        Console.WriteLine(fnMod(n));        n = 44;        Console.Write(fnMod(n));    }} // This code is contributed by nitin mittal.
<?php// PHP Program to find value of f(n)%5 // function for obtaining remainderfunction fnMod($n){         // calculate res based    // on value of n    return ($n % 4) ? 0 : 4;} // Driver Code{    $n = 43;    echo fnMod($n),"\n" ;    $n = 44;    echo fnMod($n);    return 0;} // This code is contributed by nitin mittal.?>
<script>// JavaScript program to find value of f(n)% 5 // function for obtaining remainder    function fnMod(n)    {        // calculate res based on value of n        return (n % 4 != 0) ? 0 : 4;    }    // Driver Code         let n = 43;        document.write(fnMod(n) + "<br/>");        n = 44;        document.write(fnMod(n)  + "<br/>"); // This code is contributed by splevel62.</script>
0
4
 
nitin mittal
splevel62
series
Mathematical
Mathematical
series
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Merge two sorted arrays
Operators in C / C++
Prime Numbers
Find minimum number of coins that make a given value
Minimum number of jumps to reach end
Algorithm to solve Rubik's Cube
Modulo 10^9+7 (1000000007)
The Knight's tour problem | Backtracking-1
Program for Decimal to Binary Conversion
Modulo Operator (%) in C/C++ with Examples