每日一題 No 47 區間內素數的個數

2021-08-01 02:14:13 字數 582 閱讀 5373

輸出[a,b)內的素數有幾個

第一行輸入a bs

第二行輸出有幾個

2280176348944 2280178729223

利用篩選法,第一次將2的倍數全部刪掉,第二次將3的倍數全部刪掉,第三次將5的倍數全部刪掉,依次類推。is_prime存[b - a]開始存即可(is_prime[0] = a)。

#include 

#include

#include

using

namespace

std;

#define max 10000000

bool is_prime[max];

bool is_prime_small[max];

int main()

for (long

long j = max((long

long)2, (a + i - 1) / i ) * i; j < b; j += i) }}

}cout

<< n << endl;

return

0;

}

每日一題 區區區間間間(單調棧的應用)

原題的題意可以理解為求所有子區間的最大值減去最小值的和。即所有子區間的最大值減去最小值。我們考慮用單調棧求解。維護兩個陣列 l i r i 表示當前元素作為最大值所能到達的左邊和右邊的下標是多少 當前元素作為最值 用單調棧維護。先正著維護左區間,再倒著維護右區間。維護時的操作 當前元素大於前乙個元素...

程式設計題 判斷乙個區間的素數個數問題

package 經典程式設計題 author pc 題目 判斷101 200之間有多少個素數,並輸出所有的素數 素數 prime number 又稱質數,有無限個。乙個大於1的自然數,除了1和它本身外,不能被其他自然數整除,換句話說就是該數除了1和它本身以外不再有其他的因數 否則稱為合數。也可以這樣...

每日一題之找出兩個單獨出現的數字

題目 讀入2n個數字,其中,除了有兩個數字是單獨出現外,剩下任何乙個數字出現次數都是偶數個,請寫出演算法找出這兩個數字並輸出 讀入樣例 81 3 4 5 9 1 4 3 輸出 5 9 思路1 看到這道題目,第一反應就是for迴圈列舉一遍,然後統計每個數字出現的次數,最後輸出出現次數是奇數次的 map...