6
var findNoOfPrimes = function (n) {7
let isPrime = new Array(n + 1).fill(true);11
for (let i = 2; i < n; i++) {12
for (let j = i; j <= n; j++) {13
isPrime[j * i] = false;17
isPrime.forEach((prime) => {26
var factorial = function (num) {27
let modulo = Math.pow(10, 9) + 7;29
if (num <= 0) return 1;31
return (BigInt(num) * BigInt(factorial(num - 1))) % BigInt(modulo);34
var numPrimeArrangements = function (n) {35
let modulo = BigInt(Math.pow(10, 9) + 7);37
let count = findNoOfPrimes(n);39
let factorialPrime = factorial(count);41
let factorialComposite = factorial(n - count);43
return (BigInt(factorialPrime) * BigInt(factorialComposite)) % modulo;