Given an array **arr[]** and a positive integer **P** where **P** is **prime** and non 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. **arr[0] ^{P – 1} + arr[1]^{P – 1} + … + arr[n – 1]^{P – 1}** and print the result modulo

**P**.

**Examples:**

Input:arr[] = {2, 5}, P = 3Output:2

2^{2}+ 5^{2}= 29 and 29 % 3 = 2

Input:arr[] = {5, 6, 8}, P = 7Output:3

**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, non 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 <iostream>` `#include <vector>` ` ` `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

`<?php` `// PHP implementation of the approach` ` ` `// Function to return the required sum` `function` `getSum(` `$arr` `, ` `$p` `)` `{` ` ` `return` `count` `(` `$arr` `);` `}` ` ` `// Driver code` `$arr` `= ` `array` `( 5, 6, 8 );` `$p` `= 7;` `echo` `(getSum(` `$arr` `, ` `$p` `));` ` ` `// This code is contributed` `// by Sach_Code` `?>` |

**Output:**

3

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.