本文主要是介绍7-4 性感素数 (20 分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最开始就理解错题意了
每次都要判断比该数大6或者小6的情况。
最开始我想着既然原数不是sexy prime则肯定在大于6的情况中找,但是我忽略了n到n+6这之间的数,与它小6的数构成sexy primes
#include <iostream>
#include <vector>
#include <string>
#include <cmath>
#include <algorithm>
#include <queue>
#include <cstdio>
#include <cctype>
#include <unordered_map>
#include <map>
using namespace std;
const int N = 105;
typedef pair<int, string> PII;
bool isprime(int x){if(x <= 1) return false;int sq = sqrt(x);for(int i = 2; i <= sq; i++){if(x % i == 0) return false;}return true;
}
int main() {int n;cin>>n;if(isprime(n)){int a = n - 6, b = n + 6;if(isprime(a)){cout<<"Yes"<<endl;cout<<a<<endl;}else if(isprime(b)){cout<<"Yes"<<endl;cout<<b<<endl;}else{int k = n+1;while(1){while(!isprime(k)) k++;int a = k - 6, b = k + 6;if(isprime(a)){cout<<"No"<<endl;cout<<k<<endl;break;}else if(isprime(b)){cout<<"No"<<endl;cout<<k<<endl;break;}k++;} }}else {int k = n+1;while(1){while(!isprime(k)) k++;int a = k - 6, b = k + 6;if(isprime(a)){cout<<"No"<<endl;cout<<k<<endl;break;}else if(isprime(b)){cout<<"No"<<endl;cout<<k<<endl;break;}k++;} }return 0;
}
这篇关于7-4 性感素数 (20 分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!