特殊的質數肋骨

特殊的質數肋骨

時間限制: 0 Sec  內存限制: 128 MB

題目描述

農民約翰的母牛老是生產出最好的肋骨。你能經過農民約翰和美國農業部標記在每根肋骨上的數字認出它們。 農民約翰肯定他賣給買方的是真正的質數肋骨,是由於從右邊開始切下肋骨,每次還剩下的肋骨上的數字都組成一個質數,舉例來講: 7  3  3  1 所有肋骨上的數字  7331是質數;三根肋骨  733是質數;二根肋骨  73  是質數;固然,最後一根肋骨  7  也是質數。 7331  被叫作長度  4  的特殊質數。 寫一個程序對給定的肋骨的數目  N  (1< =N< =8),求出全部的特殊質數。數字1不被看做一個質數。 

 

輸入

單獨的一行包含N。

 

輸出

按順序輸出長度爲  N  的特殊質數,每行一個。 並按大小順序排列(從小到大).

 

樣例輸入

4

 

樣例輸出

2333
2339
2393
2399
2939
3119
3137
3733
3739
3793
3797
5939
7193
7331
7333
7393



AC
 1 #include <cmath> 
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <algorithm>
 5 using namespace std;
 6 int n;
 7 bool pd(int x)//判斷質數
 8 {
 9     if (x==1)
10         return false;
11     for (int i=2;pow(i,2)<=x;i++)
12         if (x%i==0)
13             return false;
14     return true;
15 }
16 void dfs(int dep,int fa)//找質數狀況下的特殊骨頭
17 {
18     for (int i=1;i<=9;i++)
19         if (pd(fa*10+i))
20         {
21             if (dep==n)
22                 printf("%d\n",fa*10+i);
23             else
24                 dfs(dep+1,fa*10+i);
25         }
26 }
27 int main()
28 {
29     scanf("%d",&n);
30     dfs(1,0);
31     return 0;
32 }
Prime_Bone
相關文章
相關標籤/搜索