HDU 4548 美素數(預處理)

2021-09-17 03:28:41 字數 1011 閱讀 5382

小明對數的研究比較熱愛,一談到數,腦子裡就湧現出好多數的問題,今天,小明想考考你對素數的認識。

問題是這樣的:乙個十進位制數,如果是素數,而且它的各位數字和也是素數,則稱之為「美素數」,如29,本身是素數,而且2+9 = 11也是素數,所以它是美素數。

給定乙個區間,你能計算出這個區間內有多少個美素數嗎?

第一行輸入乙個正整數t,表示總共有t組資料(t <= 10000)。

接下來共t行,每行輸入兩個整數l,r(1<= l <= r <= 1000000),表示區間的左值和右值。

對於每組資料,先輸出case數,然後輸出區間內美素數的個數(包括端點值l,r)。

每組資料佔一行,具體輸出格式參見樣例。

3

1 100

2 23 19

case #1: 14

case #2: 1

case #3: 4

要用到埃氏篩法,還要和字首和結合來減複雜度,否則超時;

#include#include#include#includeusing namespace std;

#define maxn 1000007

bool a[maxn];

bool b[maxn];

int fina[1000007];

int c;

int n;

int sum;

void s()

a[0]=a[1]=false;

b[0]=b[1]=false;

for(int i=2;i<=maxn;i++)

n =i;

sum=0;

while(n)

if(b[sum])

else

}fina[i]=c;

}}int main()

printf("case #%d: %d\n",x,cnt); }

return 0;

}

hdu4548 美素數(C語言)

problem description 小明對數的研究比較熱愛,一談到數,腦子裡就湧現出好多數的問題,今天,小明想考考你對素數的認識。問題是這樣的 乙個十進位制數,如果是素數,而且它的各位數字和也是素數,則稱之為 美素數 如29,本身是素數,而且2 9 11也是素數,所以它是美素數。給定乙個區間,你...

HDU 4548 美素數 解題心得

原題 description 小明對數的研究比較熱愛,一談到數,腦子裡就湧現出好多數的問題,今天,小明想考考你對素數的認識。問題是這樣的 乙個十進位制數,如果是素數,而且它的各位數字和也是素數,則稱之為 美素數 如29,本身是素數,而且2 9 11也是素數,所以它是美素數。給定乙個區間,你能計算出這...

hdu 4548 素數打表

方法 篩法打表,再將是素數的中判斷是不是美素數。比較裸。但是就是一開始這樣做會超時。重新用乙個陣列來儲存到當前數字時已經出現了幾個美素數,最後將區間兩端所對應的相互減一下就可以了。include include include using namespace std define m 1000001...