# C program to find power of a number using loop

Category: C Program

Learn how to write a C program to find the power of a number. This article provides a detailed explanation and sample code for calculating both positive and negative exponents.

Calculating the power of a number is a fundamental concept in mathematics and programming. This article will guide you through writing a C program to compute the power of a given base raised to a given exponent, providing a detailed explanation and sample code.

## Understanding the Problem

The power of a number can be expressed as `base^exponent`, which means multiplying the base by itself exponent times. For example, `2^3` is `2 * 2 * 2` which equals `8`.

### Steps to Calculate Power of a Number

1. Input the Base and Exponent: Read the base and exponent from the user.
3. Multiply the Base by Itself Exponent Times: Use a loop to perform the multiplication.
4. Print the Result: Output the final result.

## Write a C program to find power of a number using loop

Here's a C program to find the power of a number:

``````#include <stdio.h>

int main() {
int base, exponent;
long long result = 1;

// Input the base and exponent
printf("Enter base: ");
scanf("%d", &base);
printf("Enter exponent: ");
scanf("%d", &exponent);

// Calculate the power
for (int i = 0; i < exponent; i++) {
result *= base;
}

// Print the result
printf("%d^%d = %lld", base, exponent, result);

return 0;
}
``````

Output

``````Enter base: 2
Enter exponent: 4
2^4 = 16
``````

### Explanation

1. Input the Base and Exponent: The program prompts the user to enter the base and exponent. The `scanf` function reads these values and stores them in the variables `base` and `exponent`.
2. Initialize the Result: The result is initialized to 1, as any number raised to the power of 0 is 1.
3. Calculate the Power:
• A `for` loop runs from 0 to `exponent - 1`.
• In each iteration, `result` is multiplied by `base`. This effectively multiplies the base by itself exponent times.
4. Print the Result: The program uses the `printf` function to display the result in the format `base^exponent = result`.

### Detailed Steps

• Step 1: Input the Base and Exponent
• Use `printf` to prompt the user for input.
• Use `scanf` to read the base and exponent from the user.
• Step 2: Initialize the Result
• Declare a variable `result` and initialize it to 1.
• Step 3: Calculate the Power
• Use a `for` loop to iterate from 0 to `exponent - 1`.
• In each iteration, multiply `result` by `base`.
• Step 4: Print the Result
• Use `printf` to display the result in the format `base^exponent = result`.

### Example

For an input of base `2` and exponent `3`, the program will:

• Initialize `result` to `1`.
• Iterate three times (exponent is 3):
• First iteration: `result = 1 * 2` (result becomes 2)
• Second iteration: `result = 2 * 2` (result becomes 4)
• Third iteration: `result = 4 * 2` (result becomes 8)
• Print `2^3 = 8`.

For an input of base `5` and exponent `0`, the program will:

• Initialize `result` to `1`.
• Since the exponent is 0, the loop does not execute.
• Print `5^0 = 1`.

## Handling Negative Exponents

The basic program provided above does not handle negative exponents. In mathematics, a negative exponent represents the reciprocal of the base raised to the positive exponent. For example, `2^-3` is `1 / (2^3)` which equals `1/8`.

To handle negative exponents, we need to modify the program:

``````#include <stdio.h>

int main() {
int base, exponent;
double result = 1.0;

// Input the base and exponent
printf("Enter base: ");
scanf("%d", &base);
printf("Enter exponent: ");
scanf("%d", &exponent);

// Calculate the power
int positiveExponent = exponent < 0 ? -exponent : exponent;
for (int i = 0; i < positiveExponent; i++) {
result *= base;
}

// If the exponent is negative, take the reciprocal of the result
if (exponent < 0) {
result = 1.0 / result;
}

// Print the result
printf("%d^%d = %lf", base, exponent, result);

return 0;
}
``````

Output

``````Enter base: 2
Enter exponent: -2
2^-2 = 0.250000
``````

### Explanation for Handling Negative Exponents

1. Change Result Type: The result variable is changed to `double` to handle fractional results.
2. Calculate Absolute Exponent: Use the absolute value of the exponent for the loop.
3. Reciprocal for Negative Exponent: If the original exponent is negative, take the reciprocal of the result after the loop.

We can also find power a number using built-in function `pow`

Find power a number using pow