数论(一)筛素数

数论(一)筛素数

 

 

思路:数据范围1e6线性筛法筛出所有质数,遍历所有素数prm[i]判断n-prm[i]是否为素数,是则输出答案

代码:

思路:数据范围1e6线性筛法筛出所有质数,遍历所有素数prm[i]判断n-prm[i]是否为素数,是则输出答案

代码:

int prm[maxn],cnt;

bool vis[maxn];

void init(int n){

vis[0] = vis[1] = true;

for(int i = 2 ; i <= n ; ++i ){

        if(!vis[i]) prm[cnt++] = i;

        for(int j = 0 ; prm[j] <= n / i ; ++j){

               vis[prm[j] * i] = true;

               if(i % prm[j] == 0) break;

        }

}

}

void solve(){

init(maxn - 1);

while(cin >> n,n){

        for(int i = 0 ; i < cnt ; ++i ){

               if(!vis[n - prm[i]]){

                      cout << n << " = " << prm[i] << " + " << n - prm[i] << endl;

                      break;

               }

        }

}

}

 

上一篇:MRM/PRM质谱定量技术


下一篇:PRM文件链接定义的变量或常量