POJ 3293(素數篩變形 思維)

2021-08-25 02:49:29 字數 662 閱讀 2598

對於乙個正整數,如果它模4得1,則稱這個數為h數;如果h數是質數,則稱為質h數;如果乙個h數是由兩個質h數相乘得到的,就稱之為h-semi-prime數。現在給定乙個n,求1-n有少個h-semi-prime數。

利用素數篩的思想,列舉兩個h數,讓其從小到大相乘,一開始從5*5,5*9..取的兩個數一定是質h數,得到的就是要求的數,然後打個標記。在**中,v陣列儲存的資訊,如果v[i]=0表示i沒有被篩到,那麼他一定是素數;或者v[i]要麼能被兩個素數相乘得到,這時候就標記1,是題目要求的數;要麼是被兩個數a,b相乘得到,且a,b中至少乙個是合數,這樣的我們給標記為-1,表示它既不是素數,也不是題目要求的合數。也就是說我們把篩出來的合數打上兩個標記,乙個是滿足題目要求的合數,另乙個是不滿足的合數

#include 

#include

#include

using

namespace

std;

const

int maxn = 1000001;

int v[maxn + 5], h[maxn + 5];

void is_h()

for (int j = 5; j <= maxn; j++)

}int main()

return

0;}

poj 3126 容器 素數篩法

主要路徑 時間限制 1000ms 記憶體限制 65536 k 共提交 22998 接受 12745 描述 它是乙個不時改變這樣的事情,為了不讓敵人在黑暗中的安全問題。但你看,我選擇了我的號碼 1033年很好的理由。我是總理,你知道 我知道,所以你的新號碼 8179 也是乙個素數。你將不得不在你辦公室...

poj 2478 線性篩素數 尤拉函式

由於2 n 10 6,所以一般的求尤拉函式方法用不上,而我們可以根據他的乙個性質 設a為n的質因數,若 n a 0 n a a 0 則有e n e n a a 若 n a 0 n a a 0 則有 e n e n a a 1 進行求解,而現在首要的任務就是求質因數a,我們可以利用線性篩素數時產生的n...

poj2635 同餘定理 素數篩法

題意 給定乙個數,這個數是兩個素數的乘積,並給定乙個限制l,問是否兩個素數中存在小於l的數,若存在輸出較小質數,否則列印 good 思路 1 x a b,a和b都是素數,那麼x只能分解為 1,x 或則 a,b 因為 x 只有四個因子1,a,b,x。3 素數打表,方便快速判斷某個數是否為質數。根據第乙...