hdu 1431 素數回文 (模擬)

2021-07-23 09:13:28 字數 827 閱讀 8572

鏈結 :

解題思路

:採用構造的思路來構造回文數字,怎麼構造呢?首先將回文數分為兩類,奇數長度的回文數字和偶數長度的回文數字。

1)對於偶數長度的回文數字,可以由1-n每乙個數字將其對稱翻轉構造

2)對於奇數長度的回文數字,可以在跳過最後數字一位的情況下翻轉構造

還有乙個事實就是由同乙個數字構造出來的回文數字,偶數長度的要大於所有的奇數長度。

所以要生成第n個回文數,只需要找到他是由誰構造而來即可。

ac**:

#include using namespace std;

typedef long long ll;

//每乙個數字都可以構造出兩個回文數

ll num[20];//每一數字中所包含的數字個數*2

ll pre[20];//回文數字個數字首和,按照數字統計

ll ans[20005];

int bit[50];

bool is_prime(ll x)

int solve(ll num)//將數字拆分為每乙個數字上面的數字

len = k;

while(num)

return len;

}int main()

for(int n = 1; n<= 20005; n++)

else//構造偶數字回文數

for(int i = 1; i<=50; i++)//生成回文數

}int a,b;

while(cin>>a>>b)

cout << endl;

}return 0;

}

hdu1431素數回文

problem description xiaoou33對既是素數又是回文的數特別感興趣。比如說151既是素數又是個回文。現在xiaoou333想要你幫助他找出某個範圍內的素數回文數,請你寫個程式找出 a 跟b 之間滿足條件的數。5 a b 100,000,000 input 這裡有許多組資料,每組...

hdu 1431 素數回文

problem description xiaoou33對既是素數又是回文的數特別感興趣。比如說151既是素數又是個回文。現在xiaoou333想要你幫助他找出某個範圍內的素數回文數,請你寫個程式找出 a 跟b 之間滿足條件的數。5 a b 100,000,000 input 這裡有許多組資料,每組...

HDU 1431 素數回文

有人問我這個問題。個人感覺暴蒐會tle o n sqrt n n 100000000 推斷素數用2 sqrt n 1 去除 還是列舉好了。列舉 1 10000,把他每一位存下來,回文數已知 left 求 right 然後組合起來。比如 1 推斷 11 是否素數。比如 10 推斷 101 是否素數,推...