很多时候懒得用预处理,直接调用函数感觉方便太多了!
但是比赛考的一个重点是你的时间复杂度!!
可能就因为没有用空间换时间而导致运行时间过长!!
主要预处理质数代码
void init()
{
memset(Is_or,0,sizeof(Is_or));
for(int j=2;j<sqrt(maxn);j++)//
{
if(Is_or[j]==0)//去掉合数的倍数.
{
for(int k=j+j;k<=maxn;k+=j)//去掉倍数.(把这么些个合数的倍数都标记上这个数不是素数.)
Is_or[k]=1;
}
}
for(int i=2;i<=maxn;i++)
{
if(Is_or[i]==0)
{
su[cont++