马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <bits/stdc++.h>
using namespace std;
int f(int t)
{
int flag=1;
for(int i=2;i<=sqrt(t);i++)
{
if(t%i==0)
{
flag=0;
break;
}
else flag=1;
}
return flag;
}
int main()
{
int n,res =0;;
cin>>n;
vector<int>a;
vector<vector<int>>b;
for(int i=1;i<=n;i++)a.push_back(i);
do{
b.push_back(a);
}while(next_permutation(a.begin(),a.end()));
for(int i=0;i<b.size();i++)
{
for(int j=0;j<b[i].size()-1;j++)
{
if(!f(b[i][j]+b[i][j+1]))
{
res++;
}
}
}
cout<<res<<endl;
}
题目要求:游游想知道,有多少个长度为nn的排列满足任意两个相邻元素之和都不是素数。你能帮帮她吗?
我们定义,长度为nn的排列值一个长度为nn的数组,其中1到nn每个元素恰好出现了一次。
为什么我这样写不对呢 |