lightoj1259 线性筛的另一种写法 v变成bool标记数组
生活随笔
收集整理的這篇文章主要介紹了
lightoj1259 线性筛的另一种写法 v变成bool标记数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
也是用線性篩,但是v用int會爆,所以這個線性篩用的是另外一種寫法
#include<cstdio> #include<cmath> #include<queue> #include<vector> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef long long ll; const int inf = 0x3f3f3f3f; const int maxn = 1e7 + 10; bool a[maxn]; int prime[maxn/10];void initprime() {memset(a, 0, sizeof(a));int num = 0;for(int i = 2; i < maxn; ++i){if(!a[i]) prime[num++] = i;for(int j = 0; j < num && i * prime[j] < maxn; ++j){a[i * prime[j]] = 1;if(!(i % prime[j])) break;}} }int main() {initprime();int t;scanf("%d", &t);for(int i = 1; i <= t; ++i){int n, cnt = 0;scanf("%d", &n);for(int j = 0; prime[j] <= n/2 ; ++j)if(!a[prime[j]] && !a[n - prime[j]]) ++cnt;printf("Case %d: %d\n", i, cnt);}return 0; }?
轉載于:https://www.cnblogs.com/zsben991126/p/10399037.html
總結
以上是生活随笔為你收集整理的lightoj1259 线性筛的另一种写法 v变成bool标记数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel度分秒转度--公式大解析
- 下一篇: 如何查看JDK版本信息