using System;
class Program
{
static long GenerateNDigitNumber(int n) {
if (n < 1) {
throw new ArgumentException("n must be a positive integer (>= 1).");
}
Random random = new Random();
long lowerBound = (n > 1) ? (long)Math.Pow(10, n - 1) : 0;
long upperBound = (long)Math.Pow(10, n) - 1;
long range = upperBound - lowerBound + 1;
// Random.NextDouble gives [0.0, 1.0), scale to range
long r = (long)(random.NextDouble() * range) + lowerBound;
return r;
}
static void Main()
{
Console.WriteLine(GenerateNDigitNumber(1));
Console.WriteLine(GenerateNDigitNumber(4));
Console.WriteLine(GenerateNDigitNumber(10));
}
}
/*
run:
4
5979
6091884989
*/