1099 性感素?cái)?shù) (20 分)
1099 性感素?cái)?shù) (20 分)
“性感素?cái)?shù)”是指形如 (, p+) 這樣的一對(duì)素?cái)?shù)。之所以叫這個(gè)名字,是因?yàn)槔≌Z管“六”叫“sex”(即英語的“性感”)。(原文摘自 http://mathworld.wolfram.com/SexyPrimes.html)
現(xiàn)給定一個(gè)整數(shù),請(qǐng)你判斷其是否為一個(gè)性感素?cái)?shù)。
輸入格式:
輸入在一行中給出一個(gè)正整數(shù) N<=10^8 )。
輸出格式:
若??是一個(gè)性感素?cái)?shù),則在一行中輸出?Yes,并在第二行輸出與??配對(duì)的另一個(gè)性感素?cái)?shù)(若這樣的數(shù)不唯一,輸出較小的那個(gè))。若??不是性感素?cái)?shù),則在一行中輸出?No,然后在第二行輸出大于??的最小性感素?cái)?shù)。
輸入樣例 1:
47
輸出樣例 1:
Yes41
輸入樣例 2:
21
輸出樣例 2:
No
23

代碼:
#include
#include
using namespace std;
bool is_prime(int x)
{
if(x<=1)
return false;
for(int i=2;i*i<=x;++i)
{
if(x%i==0)
return false;
}
return true;
}
int main()
{
int N;
cin>>N;
bool ans_s=is_prime(N-6);
bool ans_b=is_prime(N+6);
if(is_prime(N)&&(ans_s||ans_b))
{
cout<<"Yes"< if(ans_s)
cout< else
cout< }
else
{
for(int i=N+1;;++i)
{
ans_s=is_prime(i-6);
ans_b=is_prime(i+6);
if(is_prime(i)&&(ans_s||ans_b))
{
cout<<"No"< cout< return 0;
}
}
}
return 0;
}
評(píng)論
圖片
表情
