Open In App

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

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. 

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 : 
 

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 by examine value of n. 
 




// Program to find value of f(n)%5
#include <bits/stdc++.h>
using namespace std;
 
// function for obtaining remainder
int fnMod(int n)
{
    // calculate res based on value of n
    return (n % 4) ? 0 : 4;
}
 
// driver program
int 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 5
def fnMod (n):
    res = 4 if (n % 4 == 0) else 0
    return res
 
# driver section
n = 43
print (fnMod(n))
n = 44
print (fnMod(n))




// C# Program to find value of f(n) % 5
using 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 remainder
function 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>

Output: 
0
4

 

Time complexity: O(1)
Auxiliary space: O(1)


Article Tags :