acwing4268. 性感素数

思路

如果n是性感素数,说明n是素数,并且n−6或者n+6是素数。
如果n−6是素数,直接输出Yes,n−6
如果n+6 是素数,直接输出Yes, n+6
如果n不是性感素数,就从n+1开始遍历,直到找到第一个性感素数,输出即可。

#include<iostream>
#include<cstring>
using namespace std;

bool  isPrime(int n){
    if(n<=1)return false; 
   for(int i=2;i<=n/i;i++){
       if(n%i==0)return false;
   }
   return true;
}
int main(){
    int n;
    cin>>n;
    if(isPrime(n)&&(isPrime(n-6)||isPrime(n+6))){
        puts("Yes");
        if(isPrime(n-6))cout<<n-6;
        else cout<<n+6;
    }else{
        puts("No");
        for(int i=n+1;;i++){
            if(isPrime(i)&&(isPrime(i-6)||isPrime(i+6))){
                cout<<i<<endl;
                break;
            }
        }
    }
    
    return 0;
    
}