P5723 深基4 例13 質數口袋

2021-10-17 10:59:26 字數 838 閱讀 7233

先用乙個陣列來存放素數,然後統計和計算

#include

using

namespace std;

int l,cnt,sum;

int a[

100005];

intisprime

(int n)

return n;

}int

main()

}int i=0;

while(1

)else

break;}

for(

int i=

0;i1;i++

) cout<

1<

}

要注意的點:n可能小於2,要單獨判斷。

然後直接判斷,還有減少時間複雜度的方法:i%2==0&&i!=2 可以直接去除i的倍數。

#include

using

namespace std;

int n,x;

long

long sum=0;

intpd

(int y)

return1;

}int

main()

else

if(n==2)

for(

int i=

2; i<=n;

++i)if(

pd(i))}

return0;

}

P5736 深基7 例2 質數篩

include using namespace std long long shai long long a for int i 2 i sqrt a i return 1 跑遍了迴圈沒找到除1和本身之外的數,那就是素數,返回1。int main for int i 1 i n i 0,1標為不是 ...

洛谷P2249 深基13 例1 查詢 二分

題目鏈結 是個好題目,和平時的二分不同的是,這個需要找到lower bound 的結果。那麼就二分到只有乙個數的時候再判斷,否則x a mid 就搜左邊,x a mid 就搜右邊,就可以實現lower bound 的效果。如下,仔細品味 include include include include...

題解 P5719 深基4 例3 分類平均

之前的 latex 有點崩了,修改一下。這題大家可能第一下想到的方法就是列舉 1 到 n 逐一判斷這些數是否為 k 的倍數,這種做法的時間複雜度為 theta n 其實還有一種做法是列舉小於 n 的 k 的倍數,求出它們的和,即為 a 集合 再用總和減去 a 集合元素的和,即為 b 集合。當 k l...