題目大意:質數序列是指這個序列中任意兩個數的和均為質數。先給出乙個序列$}$,從中取出元素構成最長質數序列,問其長度並輸出序列。若長度相同則求和最大的序列。保證答案唯一。
小小的數學題。
1.偶數+偶數不是質數,奇數+奇數不是質數。但某些偶數+奇數($1$)是質數。所以這個序列中$1$是個很關鍵的因素。
我們進行分類討論:
1.若序列中$1$的個數大於$2$
長度為所有$1$的個數。
所有$1$再加乙個偶數。(此偶數+$1$後為質數)
2.若序列中$1$的個數等於$2$
兩個$1$。
兩個$1$加乙個偶數。
偶數+奇數。
3.若序列中$1$的個數小於$2$
偶數+奇數。
質數需要線性篩預處理。
**:
#include#define int long longusing
namespace
std;
bool vis[30000010
];int n,p[1000005],c,a[100005
],m,t,s,b;
signed main()
for (int i=2;i<=m;i++)
}sort(a+1,a+n+1
);
if (c>1
)
}for (int i=1;i<=c;i++) printf("1 "
);
return0;
}for (int i=1;i<=n;i++)
for (int j=1;j)
if (!vis[a[i]+a[j]]&&a[i]+a[j]>a[s]+a[b]) s=i,b=j;
if (!a&&!b)
printf("0
");}
printf(
"2\n%d %d
",a[b],a[s]);
return0;
}
JZOJ5458 質數 數論,數學
題目 求ll l到rr r中是質數或是兩個質數之積的數的個數。首先,觀察最大資料 l r 107 q 1 05 l leq r leq 10 7,q leq 10 5 l r 10 7,q 105那麼肯定是要離線做的。肯定是要先篩質數,那麼就用線性篩,不僅得到1 11到r rr之間的質數,還得到了每...
質數串 亂搞
乙個正整數x 是質數,當且僅當x 2 且x不是任何乙個 2,x 1 的數的倍數。乙個數字串是 質數串 當且僅當它的每個非空連續子串表示的數字都是質數。例子1 373 是質數串,它的子串有 3 37 373 7 73 3 這些串表示的數字都是質數。例子2 55 不是質數串,因為 55 這個子串表示的數...
JZOJ7月16日提高組T1 質數
題解定義質數為因數只含1和其本身的數,對於n組詢問,試判斷每個數是否為素數。第一行乙個正整數n,表示有n組詢問。接下來n行,每行乙個正整數m,表示詢問m是否為質數。輸出n行,每行乙個字串。若是質數則輸出 prime 若不是質數則輸出 not prime 52 1089807289 903248294...