用 0,1,2,3 ⋯7 这 8 个数组成的所有整数中,质数有多少个(每个数字必须用到且只能用一次)。
提示:以 0 开始的数字是非法数字 .
题解 使用next_permutation()函数 在C++的标准函数库STL中,next_permutation()函数用于求数列的全排列
#include<iostream>
#include<algorithm>
using namespace std;
bool is_prime(int x)
{
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0)
return false;
}
return true;
}
int main()
{
int a[]={0,1,2,3,4,5,6,7};
int count=0;
do{
if(a[0]==0) continue;
int sum=0;
for(int i=0;i<8;i++)
sum=sum*10+a[i];
if(is_prime(sum))
count++;
}while(next_permutation(a,a+8));
cout<<count;
}