#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
long long generate_n_digit_number(int n) {
if (n < 1) {
fprintf(stderr, "Error: n must be a positive integer (>= 1).\n");
return -1;
}
srand((unsigned int)time(NULL));
// For n=1, range is 0–9; for n>1, ensure no leading zeros
long long lower_bound = (n > 1) ? (long long)pow(10, n - 1) : 0;
long long upper_bound = (long long)pow(10, n) - 1;
// rand() returns up to RAND_MAX, so scale properly
long long range = upper_bound - lower_bound + 1;
long long r = ((long long)rand() % range) + lower_bound;
return r;
}
int main(void) {
printf("%lld\n", generate_n_digit_number(1));
printf("%lld\n", generate_n_digit_number(4));
printf("%lld\n", generate_n_digit_number(10));
return 0;
}
/*
run:
3
3275
1389660109
*/