 Open in App
Not now

# Sum of each element raised to (prime-1) % prime

• Last Updated : 21 Dec, 2022

Given an array arr[] and a positive integer P where P is prime and none of the elements of array are divisible by P. Find sum of all the elements of the array raised to the power P – 1 i.e. arrP – 1 + arrP – 1 + … + arr[n – 1]P – 1 and print the result modulo P.
Examples:

Input: arr[] = {2, 5}, P = 3
Output:
22 + 52 = 29 and 29 % 3 = 2
Input: arr[] = {5, 6, 8}, P = 7
Output:

Approach: This problem is a direct application of Fermats’s Little Theorem, a(P-1) = 1 (mod p) where a is not divisible by P. Since, none of the elements of array arr[] are divisible by P, each element arr[i] will give the value 1 with the given operation.
Therefore, our answer will be 1 + 1 + … (upto n(size of array)) = n.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``#include ` `using` `namespace` `std;` `// Function to return the required sum``int` `getSum(vector<``int``> arr, ``int` `p)``{``    ``return` `arr.size();``}` `// Driver code``int` `main()``{``    ``vector<``int``> arr = { 5, 6, 8 };``    ``int` `p = 7;``    ``cout << getSum(arr, p) << endl;``    ` `    ``return` `0;``}` `// This code is contributed by Rituraj Jain`

## Java

 `// Java implementation of the approach``public` `class` `GFG {` `    ``// Function to return the required sum``    ``public` `static` `int` `getSum(``int` `arr[], ``int` `p)``    ``{``        ``return` `arr.length;``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `arr[] = { ``5``, ``6``, ``8` `};``        ``int` `p = ``7``;``        ``System.out.print(getSum(arr, p));``    ``}``}`

## Python3

 `# Python3 implementation of the approach``# Function to return the required sum``def` `getSum(arr, p) :``    ` `    ``return` `len``(arr)` `# Driver code``if` `__name__ ``=``=` `"__main__"` `:``    ` `    ``arr ``=` `[``5``, ``6``, ``8``]``    ``p ``=` `7``    ``print``(getSum(arr, p))` `# This code is contributed by Ryuga`

## C#

 `// C# implementation of the approach` `using` `System;` `public` `class` `GFG{``    ` `    ``// Function to return the required sum``    ``public` `static` `int` `getSum(``int` `[]arr, ``int` `p)``    ``{``        ``return` `arr.Length;``    ``}` `    ``// Driver code``    ``static` `public` `void` `Main (){``        ``int` `[]arr = { 5, 6, 8 };``        ``int` `p = 7;``        ``Console.WriteLine(getSum(arr, p));``    ``}``    ` `//This Code is contributed by akt_mit   ``}`

## PHP

 ``

## Javascript

 ``

Output:

`3`

Time Complexity: O(1)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up