Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long int
- vector<ll> sieve(ll lm) {
- vector<bool> is_prime(lm + 1, true);
- is_prime[0] = false;
- is_prime[1] = false;
- for(ll i=2;i*i<=lm;i+=1) {
- if(is_prime[i]){
- for (ll j=i*i;j<=lm;j+=i) {
- is_prime[j] = false;
- }
- }
- }
- vector<ll> primes;
- for (ll i=2;i<=lm;i++) {
- if (is_prime[i]) {
- primes.push_back(i);
- }
- }
- return primes;
- }
- int main() {
- int t;
- cin>>t;
- while(t--){
- ll n,fl=0;
- cin >> n;
- ll k = n;
- vector<ll>s = sieve(int(sqrt(n)+1));
- for(auto e:s){
- ll a = n-4-e*e;
- if(a<=0)continue;
- ll p = sqrt(a);
- if(binary_search(s.begin(), s.end(),p) && p*p==a && p!=e && p != 2){
- fl = 1;
- break;
- }
- }
- if(fl)
- cout<<"YES\n";
- else
- cout<<"NO\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment