#include <iostream>
#include <random>
long long generate_n_digit_number(int n) {
if (n < 1) {
throw std::invalid_argument("n must be a positive integer (>= 1).");
}
// For n=1, range is 0-9; for n>1, ensure no leading zeros
long long lower_bound = (n > 1) ? static_cast<long long>(std::pow(10, n - 1)) : 0;
long long upper_bound = static_cast<long long>(std::pow(10, n)) - 1;
// Use random_device and mt19937 for randomness
static std::random_device rd;
static std::mt19937 gen(rd());
std::uniform_int_distribution<long long> dist(lower_bound, upper_bound);
return dist(gen);
}
int main() {
try {
std::cout << generate_n_digit_number(1) << "\n";
std::cout << generate_n_digit_number(4) << "\n";
std::cout << generate_n_digit_number(10) << "\n";
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << "\n";
}
}
/*
run:
8
7835
4551721080
*/