How to generate an N-digit integer random number in Scala

1 Answer

0 votes
import scala.util.Random

object RandomNDigits {

  /**
   * Generate an n-digit random number.
   * For n=1, range is 0–9; for n>1, ensures no leading zeros.
   */
  def generateNDigitNumber(n: Int): Long = {
    if (n < 1) {
      throw new IllegalArgumentException("n must be a positive integer (>= 1).")
    }

    val lowerBound: Long = if (n > 1) math.pow(10, n - 1).toLong else 0L
    val upperBound: Long = math.pow(10, n).toLong - 1

    val range = upperBound - lowerBound + 1
    val r = Random.nextLong(range) + lowerBound

    r
  }

  def main(args: Array[String]): Unit = {
    println(generateNDigitNumber(1))
    println(generateNDigitNumber(4))
    println(generateNDigitNumber(10))
  }
}



/*
run:

7
6000
5553702139

*/

 



answered Nov 27, 2025 by avibootz
...