const
int len =
10000000
;int isprime[len]
;void
init()
}}}
題目描述
多多知道質數是指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。
現在他想知道在乙個閉區間內,有多少個質數?他會詢問多次,請你回答他。
輸入描述:
第一行輸入乙個正整數 t,代表詢問次數 (1 ≤ t ≤ 100000)
接下來 t 行,每行輸入兩個正整數 a,b 表示查詢範圍為 [ a,b ] (1 ≤ a ≤ 107,a ≤ b ≤ 107)
輸出描述:
對於每次詢問,輸出乙個整數,表示在 [ a,b ] 範圍內質數的個數
示例1
3110
1100
11000
4
25168
#include
using
namespace std;
const
int len=
10000000
;int isprime[len]
;int sum[len]
;void
init()
}}for(
int i=
2;i<=len;i++)}
intmain()
return0;
}
質數篩選 素數篩選法
int prime 100010 void prime for int i 1 i i 1000000 i define size 1000000 int main 元素值為0代表是素數 int prime size int pos 0 int flag for int i 2 i size i p...
素數篩選法
篩選素數法 搞acm的都知道,素數是數論中必不可少的知識,也是必須要掌握的,關於素數的篩選有好幾種方法,下面一一道來,寫的不好還請提出。第一種是最常規的做法 int main if j sqrt i cout 這種方法肯定是比第一種快的,至於快多少大家可以比較一下,注意到裡面的for迴圈是到sqrt...
素數篩選 總結
第一種 直接暴力,在這就不說了 第二種 埃氏篩法 能處理1e6以下的資料 首先,將2到n範圍內的所有整數寫下來。其中最小的素數為2,將表中所有2的倍數都劃去。表中剩餘的最小數字是3,不能被更小的數整除,所以也是素數,將表中所有3的倍數也劃去。依此類推,如果表中剩餘的最小數字為m時,m就是素數,再將m...