12 条题解

  • 2
    @ 2021-11-3 20:07:34

    一道基础的题目。

    观察n<=10^6,所以可以先用线性筛把质数先全部预处理出来。

    对于每个n暴力枚举每个质数,如果n-p[i]也是质数则输出,易证这是符合题目要求b-a最大的解。

    CODE

    bj[1]=1;
    
    for (int i=2;i<=N;i++) { // 线性筛
    
    	if (!bj[i]) p[++tot]=i;
    
    	for (int j=1;j<=tot&&p[j]*i<=N;j++) bj[i*p[j]]=1;
    
    } scanf("%d",&n);
    
    while (n) {
    
    	for (int i=1;i<=tot&&p[i]<n;i++)
    
    		if (!bj[n-p[i]]) {printf("%d = %d + %d\n",n,p[i],n-p[i]); break;}
    
    	scanf("%d",&n);
    
    }
    

    信息

    ID
    197
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    577
    已通过
    218
    上传者