用 0,1,2,3 \cdots 70,1,2,3⋯7 这 88 个数组成的所有整数中,质数有多少个(每个数字必须用到且只能用一次)。
提示:以 0
0 开始的数字是非法数字。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <set>
#include <math.h>
#include <algorithm>
#define LL long long
#define maxn 105
int INF;
using namespace std;
long long map[101][101];
int main()
{
int x,j,ans=0;
int a[8]={1,0,2,3,4,5,6,7};
do
{
x=0,j=1;
int flag=0;
for(int i=7;i>=0;--i)
{
x+=a[i]*j;
j*=10;
}
//cout<<x<<endl;
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0)
{
flag=1;
break;
}
}
if(flag==0)
ans++;
}while(next_permutation(a,a+8));
cout<<ans<<endl;
return 0;
}