30分求调

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

alsk_3945 @ 2024-12-29 13:08:24

1.

#include <bits/stdc++.h>
using namespace std;
int a;
bool isPrime(int n) { 
    if (n <= 1) { 
        return false; 
    } 
    if (n <= 3) { 
        return true; 
    } 
    int sqrt_n = sqrt(n); 
    for (int i = 2; i <= sqrt_n; i++) { 
        if (n % i == 0) { 
            return false; 
        } 
    } 
    return true; 
}
int main(){
    cin>>a;
    for(int o=2;o<=a-4;o++){
        for(int i=2;i<o;i++){
            for(int p=2;p<=a;p++){
//                cout<<p<<" "<<isPrime(p)<<endl;
//              getchar();
                if(isPrime(i)==true&&isPrime(o)==true&&isPrime(p)==true&&i+o+p==a){
                    cout<<i<<" "<<o<<" "<<p<<endl;
                    return 0;
                }
            }
        }    
    }

}

AC on:(#4,#5,#8) 2.

#include <bits/stdc++.h>
using namespace std;
int a;
bool isPrime(int n) { 
    if (n <= 1) { 
        return false; 
    } 
    if (n <= 3) { 
        return true; 
    } 
    int sqrt_n = sqrt(n); 
    for (int i = 2; i <= sqrt_n; i++) { 
        if (n % i == 0) { 
            return false; 
        } 
    } 
    return true; 
}
int main(){
    cin>>a;
    for(int o=2;o<=a-4;o++){
        for(int i=2;i<o;i++){
            for(int p=2;p<=a;p++){
//                cout<<p<<" "<<isPrime(p)<<endl;
//              getchar();
                if(isPrime(i)==true&&isPrime(o)==true&&isPrime(p)==true&&i+o+p==a){
                    cout<<i<<" "<<o<<" "<<p<<endl;
                    return 0;
                }
            }
        }    
    }

}

AC on:(#1,#3,#9)


|