题目大意是给两个整数a,b,然后求出这之间的所有回文素数。
枚举回文的数,其实枚举回文的数加上判断宿舍的时间不是很长的。
1 #include < iostream > 2 #include < string > 3 #include < algorithm > 4 #include < string .h > 5 #include < vector > 6 #include < math.h > 7 #include < time.h > 8 #include < queue > 9 #include < set > 10 using namespace std; 11 12 vector < int > ans; 13 14 int num[ 8 ]; 15 16 bool check( int val) 17 { 18 for ( int i = 2 ; i <= sqrt(val * 1.0 ); i ++ ) 19 { 20 if (val % i == 0 ) return false ; 21 } 22 return true ; 23 } 24 25 void dfs( int i, int len) 26 { 27 if (i == len) 28 { 29 int val = 0 ; 30 for ( int j = 0 ; j < 2 * len; j ++ ) 31 { 32 if (j < len) val = val * 10 + num[j]; 33 else val = val * 10 + num[ 2 * len - 1 - j]; 34 } 35 if (check(val)) ans.push_back(val); 36 return ; 37 } 38 39 if (i == 0 ) 40 { 41 for ( int j = 1 ; j <= 9 ; j += 2 ) 42 { 43 // if(j == 5) continue; 44 num[i] = j; 45 dfs(i + 1 , len); 46 } 47 } 48 else 49 { 50 for ( int j = 0 ; j <= 9 ; j ++ ) 51 { 52 num[i] = j; 53 dfs(i + 1 , len); 54 } 55 } 56 } 57 58 void ddfs( int i, int len) 59 { 60 if (i == len) 61 { 62 int val = 0 ; 63 for ( int j = 0 ; j < 2 * len - 1 ; j ++ ) 64 { 65 if (j < len) val = val * 10 + num[j]; 66 else val = val * 10 + num[ 2 * len - 2 - j]; 67 } 68 if (check(val)) ans.push_back(val); 69 return ; 70 } 71 72 if (i == 0 ) 73 { 74 for ( int j = 1 ; j <= 9 ; j += 2 ) 75 { 76 // if(j == 5) continue; 77 num[i] = j; 78 ddfs(i + 1 , len); 79 } 80 } 81 else 82 { 83 for ( int j = 0 ; j <= 9 ; j ++ ) 84 { 85 num[i] = j; 86 ddfs(i + 1 , len); 87 } 88 } 89 } 90 91 void ready() 92 { 93 for ( int i = 1 ; i <= 8 ; i ++ ) 94 { 95 if (i % 2 == 0 ) dfs( 0 , i / 2 ); 96 else ddfs( 0 , i / 2 + 1 ); 97 } 98 } 99 100 int main() 101 { 102 freopen( " pprime.in " , " r " , stdin); 103 freopen( " pprime.out " , " w " , stdout); 104 105 ready(); 106 sort(ans.begin(), ans.end()); 107 int a, b, res = 0 ; 108 scanf( " %d%d " , & a, & b); 109 for ( int i = 0 ; i < ans.size(); i ++ ) 110 { 111 if (ans[i] >= a && ans[i] <= b) printf( " %d\n " , ans[i]); 112 } 113 }
转载于:https://www.cnblogs.com/litstrong/archive/2010/04/13/1711356.html
相关资源:数据结构—成绩单生成器