1279. Prime Arrangements
My accepted Python solution to LeetCode problem 1279, Prime Arrangements, running in 0ms.
- Difficulty: Easy
- Python
- Runtime 0ms
- Memory 17.3MB
- Updated
Read the problem on LeetCode View on GitHub
The problem statement is LeetCode’s and stays on their site. What follows is my accepted solution.
Python
Accepted on LeetCode — runtime 0ms, memory 17.3MB, accepted 2025-12-30.
class Solution:
def numPrimeArrangements(self, n: int) -> int:
MOD = 10**9 + 7
def is_prime(x):
if x < 2:
return False
if x == 2:
return True
if x % 2 == 0:
return False
for i in range(3, int(x**0.5) + 1, 2):
if x % i == 0:
return False
return True
def factorial(x):
result = 1
for i in range(2, x + 1):
result = (result * i) % MOD
return result
prime_count = sum(1 for i in range(1, n + 1) if is_prime(i))
non_prime_count = n - prime_count
return (factorial(prime_count) * factorial(non_prime_count)) % MOD