int numPrimeArrangements(int n){
int num=3,su=0,he=0,i=2,a=0,mod=(1e+9)+7;
long long int array_n=1,array_he=1,array_su=1;
int p,q;
if(n==1||n==2)
return 1;
else
{
for(num=3;num<=n;num++)
{
for(i=2;i<num;i++)
{
a=0;
if(num%i==0)
{
a++;
break;
}
}
if(a==0)
su++;
else
he++;
}
su++;
he++;
for(p=1;p<=su;p++)
{
array_su=array_su*p;
array_su=array_su%mod;
}
for(q=1;q<=he;q++)
{
array_he=array_he*q;
array_he=array_he%mod;
}
array_n=array_su*array_he;
return array_n%mod;
}
}
请你帮忙给从 1 到 n 的数设计排列方案,使得所有的「质数」都应该被放在「质数索引」(索引从 1 开始)上;你需要返回可能的方案总数。
让我们一起来回顾一下「质数」:质数一定是大于 1 的,并且不能用两个小于它的正整数的乘积来表示。
由于答案可能会很大,所以请你返回答案 模 mod 10^9 + 7 之后的结果即可。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/prime-arrangements
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
MOD运算,涨姿势了: