Skip to content

Commit 4c50285

Browse files
authored
Create 1175-prime-arrangements.js
1 parent 1e5f130 commit 4c50285

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

1175-prime-arrangements.js

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
function isPrime(n) {
6+
// Corner case
7+
if (n <= 1) return false
8+
// Check from 2 to n-1
9+
for (let i = 2; i < n; i++) if (n % i == 0) return false
10+
return true
11+
}
12+
13+
const numPrimeArrangements = function(n) {
14+
let primes = 0 // # of primes.
15+
let result = 1
16+
const mod = 10 ** 9 + 7
17+
for (let i = 2; i <= n; i++) if (isPrime(i)) primes++
18+
// Calculate factorials and multiply.
19+
for (let i = primes; i >= 1; i--) result = (i * result) % mod
20+
for (let i = n - primes; i >= 1; i--) result = (i * result) % mod
21+
return result // result of multiplying factorial(primes) with factorial(non-primes)
22+
}

0 commit comments

Comments
 (0)