How to generate an N-digit integer random number in C#

1 Answer

0 votes
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

*/

 



answered Nov 27, 2025 by avibootz
...