80分求助

P1579 哥德巴赫猜想(升级版)

topdjy @ 2023-03-01 19:38:10

#include<stdio.h>
int ans = 0;
int isPrime(int num){
    for(int i = 2;i*i<=num;i++){
        if(num%i == 0) return 0;
    }
    return 1;
}
int main(){
    int N,t;
    int nums[3];
    scanf("%d",&N);
    for(int i = N-4;i*i>N;i--){
        if(isPrime(i)){
            t = i;
            nums[2] = t;
            break;
        }
    }
    for(int i = 2;i<=N-t-i;i++){
        if(isPrime(i)&&isPrime(N-t-i)){
            nums[0] = i;
            nums[1] = N-t-i;
            break;
        }
        if(i>N-t-i) break;
    }
    printf("%d %d %d",nums[0],nums[1],nums[2]);
    return 0;
}

|