import Foundation
/// Generate an n-digit random number.
/// For n=1, range is 0–9; for n>1, ensures no leading zeros.
func generateNDigitNumber(_ n: Int) throws -> Int {
guard n >= 1 else {
throw NSError(domain: "RandomNDigits", code: 1,
userInfo: [NSLocalizedDescriptionKey: "n must be a positive integer (>= 1)."])
}
let lowerBound = (n > 1) ? Int(pow(10.0, Double(n - 1))) : 0
let upperBound = Int(pow(10.0, Double(n))) - 1
return Int.random(in: lowerBound...upperBound)
}
do {
print(try generateNDigitNumber(1))
print(try generateNDigitNumber(4))
print(try generateNDigitNumber(10))
} catch {
print("Error:", error.localizedDescription)
}
/*
run:
2
8625
7464190715
*/