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.
  2. Initialize the Result: Start with a result of 1.
  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


Recommended Posts