33
Total Posts
3
Categories
24/7
Updated

C++

Write a program to multiply two numbers having more than 15 digits each.

Published on Dec 22, 2025
#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
    string num1, num2;

    cout << "Enter first large number: ";
    cin >> num1;

    cout << "Enter second large number: ";
    cin >> num2;

    int n = num1.size();
    int m = num2.size();

    vector<int> result(n + m, 0);

    // Multiply digits
    for (int i = n - 1; i >= 0; i--) {
        for (int j = m - 1; j >= 0; j--) {
            int mul = (num1[i] - '0') * (num2[j] - '0');
            int sum = mul + result[i + j + 1];

            result[i + j + 1] = sum % 10;
            result[i + j] += sum / 10;
        }
    }

    // Convert result to string
    string product = "";
    for (int i = 0; i < result.size(); i++) {
        if (!(product.empty() && result[i] == 0))
            product += to_string(result[i]);
    }

    if (product.empty())
        product = "0";

    cout << "Product: " << product << endl;

    return 0;
}

Documentation

Input

Enter first large number: 123456789123456
Enter second large number: 987654321987654

Output
Product: 121932631356500531347203169024


Logic Used

  • Read numbers as strings

  • Perform multiplication digit by digit (like manual multiplication)

  • Store intermediate results in an array

  • Convert the result back to a string

 

  • Large numbers are stored as strings

  • No use of long long or external libraries

  • Time Complexity: O(n × m)

  • Works for any number of digits