结果填空:素数个数 (全排列)

用 0,1,2,3 \cdots 70,1,2,37 这 88 个数组成的所有整数中,质数有多少个(每个数字必须用到且只能用一次)。

提示:以 00 开始的数字是非法数字。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cmath>
 4 using namespace std;
 5  
 6 int main()
 7 {
 8     int a[8]={0,1,2,3,4,5,6,7};
 9     int num=0;
10     while(next_permutation(a,a+8))  {
11         if(a[0]==0)
12             continue;
13         else{
14             int sum=0,flag=1;
15             for(int i=0;i<8;i++){
16                 sum=sum*10+a[i];
17             }
18             int h=sqrt(sum); 
19             for(int i=2;i<=h;i++){
20                 if(sum%i==0){
21                     flag=0;
22                     break;
23                 }
24             }
25             if(flag) num++;
26         }
27     }
28     cout<<num<<endl;
29     return 0;
30 }

 

posted @ 2019-03-19 17:38  wydxry  阅读(406)  评论(0编辑  收藏  举报
Live2D