HDU 1431 素數回文

2021-09-07 14:11:47 字數 1290 閱讀 4916

有人問我這個問題。

個人感覺暴蒐會tle o(n*sqrt(n))。n=100000000;(推斷素數用2~sqrt(n)+1 去除)

還是列舉好了。

列舉 1~10000,把他每一位存下來,回文數已知 left 。求 right ,然後組合起來。

比如 1 ,推斷 11 是否素數。

比如 10 。推斷 101 是否素數, 推斷 1001 是否素數。

這樣複雜度就是 o(n^2)。

開始我 bool pa[100000000] 準備用標記來確定。

結果mle。

然後算了一下 總共同擁有多少個數,最多 781 個。 int pa[1000] 就能夠裝下了。

g++ 15ms

#include#include#include#include#include#include#include#include#include#include#include#include#define inf 0x7fffffff

#define eps 1e-8

#define ll long long

#define pi 3.141592654

#define clr(a,b) memset(a,b,sizeof(a))

#define for(i,a,b) for(int i=a;i=b;i--)

#define pb push_back

#define mp make_pair

#define ft first

#define sd second

#define sf scanf

#define pf printf

#define sz(v) ((int)(v).size())

#define all(v) (v).begin(),(v).end()

#define acfun std::ios::sync_with_stdio(false)

#define size 100000000 +1

using namespace std;

int pa[1000];

int cot;

bool prime(int n)

void pa()

int ans=i;

if(len>1)

ans=i;

for(r,0,len)

ans=ans*10+num[r];

if(prime(ans))

pa[cot++]=ans;

}}int main()

}

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

本題資料稍微有點大,所以判斷素數時需要開方,並且可以事先求出最大的回文素數 9989899,這樣資料量就減少了90 再就是注意再判斷回文的速度比判斷素數快,且回文比素數少所以在判斷時應選擇先判斷回文,當數值達到千萬後判斷素數速度尤為慢,所以先判斷回文可以篩掉一大半 k 素數回文 25 cpp 此檔案...