void setup() {
  Serial.begin(9600);
}

void loop() {
  // Define two large numbers as character arrays
  char num1[] = "123456789";
  char num2[] = "987654321";
  
  // Determine the length of each number
  int len1 = strlen(num1);
  int len2 = strlen(num2);
  
  // Create a result array with space for the maximum number of digits
  int resultSize = len1 + len2;
  int result[resultSize];
  memset(result, 0, sizeof(result)); // initialize result array with zeros
  
  // Multiply each digit of num1 by each digit of num2
  for (int i = 0; i < len1; i++) {
    for (int j = 0; j < len2; j++) {
      int digit1 = num1[i] - '0'; // convert char to int
      int digit2 = num2[j] - '0'; // convert char to int
      result[i+j] += digit1 * digit2; // multiply digits and add to result array
    }
  }
  
  // Carry over any excess digits
  for (int i = 0; i < resultSize-1; i++) {
    result[i+1] += result[i] / 10;
    result[i] %= 10;
  }
  
  // Print the result to the Serial Monitor
  Serial.print("Result: ");
  for (int i = resultSize-1; i >= 0; i--) {
    Serial.print(result[i]);
  }
  Serial.println();
  
  delay(1000);
}