4 条题解

  • 0
    @ 2026-10-22 2:07:43
    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<math.h>
    int main() {
    	int a =2,b,n;
    	scanf("%d",&n);
    	for (;a<=n/2;a++)
    	{
    		int A = 0, B = 0, i = 2;//大写字母代表对应小写字母是否是素数的真假
    		do {//要求比1大且比根号a(取整)小或等的数字不可以整除a,但是可能没有这样的数字
    			if (!((int)sqrt(a)-1))//讨论一下
    			{
    				A++;
    				break;
    			}
    			else
    				if (a % i == 0)
    					break;
    			if (i-1 == (int)sqrt(b)-1)//此处的i即是我昨天晚上所言的计数器
    			{
    				A++;
    				break;
    			}
    		} while (i++);
    		b = n - a;//然后同理判断b
    		i = 2;
    		do {//要求比1大且比根号b(取整)小或等的数字不可以整除b,但是可能没有这样的数字
    			if (!((int)sqrt(b) - 1))//讨论一下
    			{
    				B++;
    				break;
    			}
    			else
    				if (b % i == 0)
    					break;
    			if (i-1 == (int)sqrt(b)-1)
    			{
    				B++;
    				break;
    			}
    		} while (i++);
    		if (A && B)
    		{
    			printf("%d %d", a, b);
    			return 0;
    		}
    	}
    	return 0;
    }
    

    信息

    ID
    236
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    394
    已通过
    216
    上传者