hdoj4548美素數(素數打表,易超時)

2021-07-15 07:32:42 字數 1030 閱讀 2617

description

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

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

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

input

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

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

output

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

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

sample input

31 100

2 23 19

sample output

case #1: 14

case #2: 1

case #3: 4

**:

#includeint su[1000000+11]=;

int qq[1000000+11];

int main()

} for(int i=2;i<=1000000;i++)

if(su[ans]==0)

qq[i]++;

} qq[i]+=qq[i-1];

} int t;

scanf("%d",&t);

int l=1;

while(t--)

return 0;

}

思路:這道題wa了快十次了,一直超時超時。先進行素數打表,然後拆分這個數,可以用%10,/10,一位一位的相加,在判斷是否為素數。如果是的話記錄該值。

這裡有個防止超時的方法,另存乙個陣列遇到了美素數++,對於每乙個數一直儲存從1到這個數有多少美素數。最後計算的時候直接a[n]-a[m-1],後乙個減去前乙個數之前那個數儲存的美素數數目就可以得出該區間共有多少個美素數了。

hd水題 hdoj4548 美素數

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

美素數 素數打表

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

HDU 4548 美素數 尤拉素數篩 打表)

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