# Time Complexity of Loop with Powers

What is the time complexity of the below function?

## C++

 `void` `fun(``int` `n, ``int` `k)` `{` `    ``for` `(``int` `i = 1; i <= n; i++) ` `    ``{` `        ``int` `p = ``pow``(i, k);` `        ``for` `(``int` `j = 1; j <= p; j++) ` `        ``{` `            ``// Some O(1) work` `        ``}` `    ``}` `}`   `// This code is contributed by Shubham Singh`

## C

 `void` `fun(``int` `n, ``int` `k)` `{` `    ``for` `(``int` `i = 1; i <= n; i++) ` `    ``{` `        ``int` `p = ``pow``(i, k);` `        ``for` `(``int` `j = 1; j <= p; j++) ` `        ``{` `            ``// Some O(1) work` `        ``}` `    ``}` `}`

## Java

 `static` `void` `fun(``int` `n, ``int` `k)` `{` `    ``for` `(``int` `i = ``1``; i <= n; i++) ` `    ``{` `        ``int` `p = Math.pow(i, k);` `        ``for` `(``int` `j = ``1``; j <= p; j++) ` `        ``{` `            ``// Some O(1) work` `        ``}` `    ``}` `}`   `// This code is contributed by umadevi9616`

## Python3

 `def` `fun(n, k):` `    `  `    ``for` `i ``in` `range``(``1``, n ``+` `1``):` `        ``p ``=` `pow``(i, k)` `        ``for` `j ``in` `range``(``1``, p ``+` `1``):` `            ``# Some O(1) work` `        `    `# This code is contributed by Shubham Singh`

## C#

 `static` `void` `fun(``int` `n, ``int` `k)` `{` `    ``for` `(``int` `i = 1; i <= n; i++) ` `    ``{` `        ``int` `p = Math.Pow(i, k);` `        ``for` `(``int` `j = 1; j <= p; j++) ` `        ``{` `            ``// Some O(1) work` `        ``}` `    ``}` `}`   `// This code is contributed by umadevi9616`

## Javascript

 ``

Time complexity of above function can be written as 1k + 2k + 3k + … n1k.

Let us try few examples:

`k=1Sum = 1 + 2 + 3 ... n     = n(n+1)/2     = n2/2 + n/2k=2Sum = 12 + 22 + 32 + ... n12.    = n(n+1)(2n+1)/6    = n3/3 + n2/2 + n/6k=3Sum = 13 + 23 + 33 + ... n13.    = n2(n+1)2/4    = n4/4 + n3/2 + n2/4     `

In general, asymptotic value can be written as (nk+1)/(k+1) + Θ(nk)
If  n>=k then the time complexity will be considered in O((nk+1)/(k+1)) and if n<k, then the time complexity will be considered as  in the O(nk)