小明對數的研究比較熱愛,一談到數,腦子裡就湧現出好多數的問題,今天,小明想考考你對素數的認識。
問題是這樣的:乙個十進位制數,如果是素數,而且它的各位數字和也是素數,則稱之為「美素數」,如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...